Delta Tau Geo Brick Lv Users Manual User
2015-07-14
: Delta-Tau Delta-Tau-Geo-Brick-Lv-Users-Manual-773830 delta-tau-geo-brick-lv-users-manual-773830 delta-tau pdf
Open the PDF directly: View PDF .
Page Count: 271
Download | |
Open PDF In Browser | View PDF |
^1 USER MANUAL ^2 Geo Brick LV ^3 Low Voltage Programmable Servo Amplifier ^4 5XX-603814-XUXX ^5 February 14, 2015 DELTA TAU Data Systems, Inc. NEW IDEAS IN MOTION … Single Source Machine Control ……………………………………………..…...………………. Power // Flexibility // Ease of Use 21314 Lassen St. Chatsworth, CA 91311 // Tel. (818) 998-2095 Fax. (818) 998-7807 // www.deltatau.com Geo Brick LV User Manual Copyright Information © 2015 Delta Tau Data Systems, Inc. All rights reserved. This document is furnished for the customers of Delta Tau Data Systems, Inc. Other uses are unauthorized without written permission of Delta Tau Data Systems, Inc. Information contained in this manual may be updated from time-to-time due to product improvements, etc., and may not conform in every respect to former issues. To report errors or inconsistencies, call or email: Delta Tau Data Systems, Inc. Technical Support Phone: (818) 717-5656 Fax: (818) 998-7807 Email: support@deltatau.com Website: http://www.deltatau.com Operating Conditions All Delta Tau Data Systems, Inc. motion controller, accessory, and amplifier products contain static sensitive components that can be damaged by incorrect handling. When installing or handling Delta Tau Data Systems, Inc. products, avoid contact with highly insulated materials. Only qualified personnel should be allowed to handle this equipment. In the case of industrial applications, we expect our products to be protected from hazardous or conductive materials and/or environments that could cause harm to the controller by damaging components or causing electrical shorts. When our products are used in an industrial environment, install them into an industrial electrical cabinet to protect them from excessive or corrosive moisture, abnormal ambient temperatures, and conductive materials. If Delta Tau Data Systems, Inc. products are directly exposed to hazardous or conductive materials and/or environments, we cannot guarantee their operation. Geo Brick LV User Manual Safety Instructions Qualified personnel must transport, assemble, install, and maintain this equipment. Properly qualified personnel are persons who are familiar with the transport, assembly, installation, and operation of equipment. The qualified personnel must know and observe the following standards and regulations: IEC364resp.CENELEC HD 384 or DIN VDE 0100 IEC report 664 or DIN VDE 0110 National regulations for safety and accident prevention or VBG 4 Incorrect handling of products can result in injury and damage to persons and machinery. Strictly adhere to the installation instructions. Electrical safety is provided through a low-resistance earth connection. It is vital to ensure that all system components are connected to earth ground. This product contains components that are sensitive to static electricity and can be damaged by incorrect handling. Avoid contact with high insulating materials (artificial fabrics, plastic film, etc.). Place the product on a conductive surface. Discharge any possible static electricity build-up by touching an unpainted, metal, grounded surface before touching the equipment. Keep all covers and cabinet doors shut during operation. Be aware that during operation, the product has electrically charged components and hot surfaces. Control and power cables can carry a high voltage, even when the motor is not rotating. Never disconnect or connect the product while the power source is energized to avoid electric arcing. A Warning identifies hazards that could result in personal injury or death. It precedes the discussion of interest. WARNING ! A Caution identifies hazards that could result in equipment damage. It precedes the discussion of interest. Caution A Note identifies information critical to the user’s understanding or use of the equipment. It follows the discussion of interest. Note Geo Brick LV User Manual MANUAL REVISION HISTORY REV DESCRIPTION DATE CHANGE APPROVED 9 CONTROL BOARD PINOUTS AND SETUP STROBE WORD PLCS, ADC STATUS BITS MOTOR SETUP SECTION TROUBLESHOOTING SECTION 10/11/11 R.N R.N 10 UPDATED +5V ENC PWR SECTION 10/13/11 R.N R.N 11 CORRECTED IXX30 FOR PFM 11/01/11 M.Y M.Y 12 GENERAL UPDATES 04/15/12 R.N R.N 13 CORRECTIONS AND UPDATES 12/11/12 R.N R.N 14 - UPDATED PART NUMBER TREE - ADDED POWER ON/OFF SEQUENCE - UPDATED LOGIC POWER INPUT SECTION - ADDED STO INFORMATION - UPDATED X9-X12 SECTION - UPDATED MACRO CONNECTIVITY SECTION - ADDED SERIAL N0 AND BOARD IDENTIFICATION - CORRECTED IXX81 TABLE IN HALLS - GENERAL FORMATTING, CORRECTIONS, AND UPDATES 12/14/12 R.N R.N 15 RE-ADDED PLC DISABLING AND MOTOR KILL IN INITILIAZATION PLC 03/20/13 R.N R.N 16 MISCELLANEOUS CORRECTIONS. 02/24/14 R.N R.N 17 - CORRECTED ENCODER LOSS FOR SINUSOIDAL ENCODERS - UPDATED GP IO, LIMITS EQU SECTIONS - CORRECTED HALLS SCALE FACTOR - GENERAL FORMATTING AND UPDATES 02/04/15 R.N R.N Older revision correction notes have been removed for obsolescence and clarity. Note Geo Brick LV User Manual Table of Contents INTRODUCTION ................................................................................................................... 11 Documentation ..........................................................................................................................11 Downloadable Turbo PMAC Script ............................................................................................12 SPECIFICATIONS ................................................................................................................. 13 Part Number .............................................................................................................................13 Geo Brick LV Options................................................................................................................15 Environmental Specifications ....................................................................................................16 Electrical Specifications ............................................................................................................17 RECEIVING, UNPACKING, AND MOUNTING ................................................................ 19 Use of Equipment .....................................................................................................................19 Mounting ...................................................................................................................................20 Connector Locations .................................................................................................................21 CAD Drawing ............................................................................................................................22 PINOUTS AND SOFTWARE SETUP ................................................................................... 23 TB1: 24VDC Logic Input ...........................................................................................................23 TB3: Safe Torque Off (STO) .....................................................................................................24 Dynamic Braking ............................................................................................................................. 24 Disabling the STO ............................................................................................................................ 25 Wiring and Using the STO ................................................................................................................ 25 J1: DC Bus Input .......................................................................................................................26 Power On/Off Sequence.................................................................................................................... 27 J4: Limits, Flags, EQU [Axis 1- 4] ..............................................................................................28 J5: Limits, Flags, EQU [Axis 5- 8] ..............................................................................................29 Wiring the Limits and Flags ............................................................................................................. 30 Limits and Flags [Axis 1- 4] Suggested M-Variables ........................................................................ 31 Limits and Flags [Axis 5- 8] Suggested M-Variables ........................................................................ 31 J6: General Purpose Inputs and Outputs ..................................................................................32 J7: General Purpose Inputs and Outputs (Additional)................................................................33 About the Digital Inputs and Outputs ................................................................................................ 34 Wiring the Digital Inputs and Outputs .............................................................................................. 35 General Purpose I/Os (J6) Suggested M-Variables ........................................................................... 36 General Purpose I/Os Additional (J7) Suggested M-Variables .......................................................... 36 J8: PWM Amplifier Interface ......................................................................................................37 J9: Handwheel and Analog I/O ..................................................................................................38 Setting up the Analog Inputs (J9) ...................................................................................................... 39 Setting up the Analog Output (J9) ..................................................................................................... 41 Setting up Pulse and Direction Output PFM (J9) .............................................................................. 43 Setting up the Handwheel Port (J9) .................................................................................................. 45 X1-X8: Encoder Feedback, Digital A Quad B ............................................................................46 Setting up Quadrature Encoders ....................................................................................................... 48 Table of Contents vi Geo Brick LV User Manual Encoder Count Error (Mxx18) .......................................................................................................... 48 Encoder Loss Detection, Quadrature ................................................................................................ 49 Step and Direction PFM Output (To External Stepper Amplifier) ...................................................... 51 X1-X8: Encoder Feedback, Sinusoidal ......................................................................................56 Setting up Sinusoidal Encoders ......................................................................................................... 57 Counts per User Units ...................................................................................................................... 58 Encoder Count Error (Mxx18) .......................................................................................................... 59 Encoder Loss Detection, Sinusoidal .................................................................................................. 60 X1-X8: Encoder Feedback, Resolver ........................................................................................61 Setting up Resolvers ......................................................................................................................... 61 Resolver Excitation Magnitude ......................................................................................................... 62 Resolver Excitation Frequency ......................................................................................................... 62 X1-X8: Encoder Feedback, HiperFace ......................................................................................67 Setting up HiperFace On-Going Position.......................................................................................... 68 Setting up HiperFace Absolute Power-On Position ........................................................................... 70 Setting up HiperFace Encoders Example .......................................................................................... 74 Encoder Count Error (Mxx18) .......................................................................................................... 79 Encoder Loss Detection, Sinusoidal .................................................................................................. 80 X1-X8: Encoder Feedback, SSI ................................................................................................82 Configuring SSI ................................................................................................................................ 82 SSI Control Registers Setup Example................................................................................................ 86 X1-X8: Encoder Feedback, EnDat 2.1/2.2 .................................................................................88 Configuring EnDat ........................................................................................................................... 88 EnDat Control Registers Setup Example ........................................................................................... 92 X1-X8: Encoder Feedback, BiSS C/B .......................................................................................94 Configuring BiSS.............................................................................................................................. 94 BiSS Control Registers Setup Example.............................................................................................. 98 Setting up SSI | EnDat | BiSS..................................................................................................100 Setup Summary............................................................................................................................... 101 Technique 1 Example ..................................................................................................................... 103 Technique 2 Example ..................................................................................................................... 106 Technique 3 Example ..................................................................................................................... 111 X1-X8: Encoder Feedback, Yaskawa Sigma II & III ................................................................ 116 Yaskawa Sigma II 16-Bit Absolute Encoder .................................................................................... 121 Yaskawa Sigma II 17-Bit Absolute Encoder .................................................................................... 124 Yaskawa Sigma III 20-Bit Absolute Encoder ................................................................................... 127 Yaskawa Sigma II 13-Bit Incremental Encoder ............................................................................... 130 Yaskawa Sigma II 17-Bit Incremental Encoder ............................................................................... 132 Yaskawa Incremental Encoder Alarm Codes ................................................................................... 134 Homing with Yaskawa Incremental Encoders ................................................................................. 135 X9-X10: Analog Inputs/Outputs ............................................................................................... 136 X11-X12: Analog Inputs/Outputs ............................................................................................. 136 Setting up the Analog (ADC) Inputs ................................................................................................ 137 Setting up the Analog (DAC) Outputs ............................................................................................. 138 Setting up the General Purpose Relay, Brake .................................................................................. 140 Setting up the External Amplifier Fault Input .................................................................................. 142 Table of Contents vii Geo Brick LV User Manual X13: USB 2.0 Connector .........................................................................................................143 X14: RJ45, Ethernet Connector .............................................................................................. 143 X15: Watchdog & ABORT (TB2) ............................................................................................. 144 Wiring the Abort Input.................................................................................................................... 144 Wiring the Watchdog Output .......................................................................................................... 145 RS232: Serial Communication Port ......................................................................................... 146 AMP1-AMP8: Motor Wiring .....................................................................................................147 Stepped Motor Wiring .................................................................................................................... 148 Brushless (Servo) Motor wiring ...................................................................................................... 148 Brush Motor Wiring ....................................................................................................................... 148 +5V ENC PWR (Alternate Encoder Power) .............................................................................149 Wiring the Alternate (+5V) Encoder Power .................................................................................... 150 Functionality, Safety Measures ....................................................................................................... 151 MOTOR TYPE & PROTECTION POWER-ON PLCS ..................................................... 152 Stepper Motor Power-On PLC Sample....................................................................................153 Servo (brushless/brush) Motor Power-On PLC Sample .......................................................... 154 Hybrid Motor Power-On PLC Sample ......................................................................................155 MOTOR SETUP ................................................................................................................... 156 Motor Setup Flow Chart ..........................................................................................................156 Dominant Clock Settings .........................................................................................................157 Stepper Motor Setup -- Direct Micro-Stepping .........................................................................158 Before you start .............................................................................................................................. 158 Encoder Conversion Table Setup .................................................................................................... 158 Position, Velocity Pointers: Ixx03, Ixx04 ........................................................................................ 159 Motor Activation, Commutation Enable: Ixx00, Ixx01 ..................................................................... 159 Command Output Address: Ixx02 ................................................................................................... 159 Current Feedback, ADC Mask, Commutation angle: Ixx82, Ixx84, Ixx72 ........................................ 160 Flag Address, Mode Control: Ixx25, Ixx24...................................................................................... 160 Commutation Address, Cycle size: Ixx83, Ixx70, Ixx71 .................................................................... 160 Maximum Achievable Motor Speed, Output Command Limit: Ixx69 ................................................ 161 PWM Scale Factor: Ixx66............................................................................................................... 162 I2T Protection, Magnetization Current: Ixx57, Ixx58, Ixx69, Ixx77 ................................................. 163 Phasing, Power-On Mode: Ixx80, Ixx73, Ixx74, Ixx81, Ixx91 .......................................................... 164 Position-Loop PID Gains: Ixx30…Ixx39 ......................................................................................... 164 Current-Loop Gains: Ixx61, Ixx62, Ixx76 ........................................................................................ 165 Number of Counts per Revolution (Stepper Motors) ........................................................................ 165 Brushless Motor Setup ............................................................................................................166 Before you start .............................................................................................................................. 166 Flag Control, Commutation Angle, Current Mask: Ixx24, Ixx72, Ixx84 ........................................... 166 PWM Scale Factor: Ixx66............................................................................................................... 166 Current Feedback Address: Ixx82 ................................................................................................... 166 Commutation Position Address, Commutation Enable: Ixx83, Ixx01 ............................................... 167 I2T Protection: Ixx57, Ixx58, Ixx69 ................................................................................................. 169 Commutation Cycle Size: Ixx70, Ixx71 ............................................................................................ 170 Table of Contents viii Geo Brick LV User Manual ADC Offsets: Ixx29, Ixx79 .............................................................................................................. 171 Current-Loop Gains: Ixx61, Ixx62, Ixx76 ........................................................................................ 172 Motor Phasing, Power-On Mode: Ixx73, Ixx74, Ixx80, Ixx81, Ixx91 ................................................ 173 Open-Loop Test, Encoder Decode: I7mn0 ...................................................................................... 193 Position-Loop PID Gains: Ixx30…Ixx39 ......................................................................................... 195 DC Brush Motor Software Setup ............................................................................................. 196 Before you start .............................................................................................................................. 196 Phasing Search Error Bit, Current-Loop Integrator Output (Ixx96) ................................................ 196 Flags, Commutation, Phase Angle, ADC Mask: Ixx24, Ixx01, Ixx72, Ixx84 ..................................... 197 PWM Scale Factor: Ixx66............................................................................................................... 197 Current Feedback Address: Ixx82 ................................................................................................... 197 Commutation Cycle Size: Ixx70, Ixx71 ............................................................................................ 198 I2T Protection, Magnetization Current: Ixx57, Ixx58, Ixx69, Ixx77 ................................................. 198 ADC Offsets: Ixx29, Ixx79 .............................................................................................................. 199 Current-Loop Gains, Open-Loop/Enc. Decode: Ixx61, Ixx62, Ixx76, I7mn0 .................................... 199 Position-Loop PID Gains: Ixx30…Ixx39 ......................................................................................... 200 MACRO CONNECTIVITY ................................................................................................. 201 Introduction to MACRO ...........................................................................................................201 MACRO Configuration Examples ............................................................................................ 202 Review: MACRO Nodes and Addressing ......................................................................................... 203 Review: MACRO Auxiliary Commands ........................................................................................... 204 Configuration Example 1: Brick – Brick (Servo Motors) ........................................................... 205 Setting up the Slave in Torque Mode ............................................................................................... 206 Setting up the Master in Torque Mode ............................................................................................ 209 Setting up the Slave in PWM Mode ................................................................................................. 212 Setting up the Master in PWM Mode............................................................................................... 213 Configuration Example 2: Brick – Brick (Stepper Motors) ........................................................219 Setting up the Slave in Torque Mode for Steppers ........................................................................... 219 Setting up the Master in Torque Mode for Steppers ......................................................................... 224 Configuration Example 3: Brick – Geo MACRO Drive ............................................................. 227 Brick – Brick MACRO I/O Data Transfer..................................................................................235 Transferring the Digital (Discrete) Input and Outputs .................................................................... 236 Transferring The X9-X12 Analog Inputs/Outputs ............................................................................ 241 Transferring The J9 Analog Inputs ................................................................................................. 243 MACRO Limits, Flags and Homing .......................................................................................... 244 Limits and Flags ............................................................................................................................. 244 Homing from Master ...................................................................................................................... 244 Homing from Slave ......................................................................................................................... 244 MACRO Suggested M-Variables..................................................................................................... 245 Absolute Position Reporting Over MACRO .............................................................................247 MACRO Configuration Power-Up Sequence ...........................................................................248 TROUBLESHOOTING ........................................................................................................ 249 Serial Number and Board Revisions Identification ...................................................................249 D1: Error Codes ......................................................................................................................250 Table of Contents ix Geo Brick LV User Manual Strobe Word and Axes Data Structures...................................................................................251 Strobe Word Structure .................................................................................................................... 251 ADC A Status Word ........................................................................................................................ 252 ADC B Status Word ........................................................................................................................ 252 LED Status.............................................................................................................................. 253 Boot Switch SW (Firmware Reload) – Write-Protect Disable ...................................................254 Reloading PMAC firmware............................................................................................................. 255 Changing IP Address, Gateway IP, Or Gateway Mask .................................................................... 257 Enabling ModBus ........................................................................................................................... 258 Reloading Boot And Communication Firmware .............................................................................. 259 Reset Switch SW (Factory Reset) ........................................................................................... 260 Error 18 (Erro18) .....................................................................................................................261 Watchdog Timer Trip...............................................................................................................262 APPENDIX A ........................................................................................................................ 263 D-Sub Connector Spacing Specifications ................................................................................263 APPENDIX B ........................................................................................................................ 264 Control Board Jumpers (For Internal Use)...............................................................................264 APPENDIX C ........................................................................................................................ 266 Schematic Samples ................................................................................................................266 APPENDIX D ........................................................................................................................ 269 Absolute Serial Encoders Limitation with Turbo PMAC ........................................................... 269 Table of Contents x Geo Brick LV User Manual INTRODUCTION The Geo Brick LV (Low Voltage) combines the intelligence and capability of the Turbo PMAC2 motion controller with advanced MOSFET technology, resulting in a compact, smart 4-, or 8-axis servo drive package. The flexibility of the Turbo PMAC2 enables the Geo Brick LV to drive stepper, brush, or brushless motors with unsurpassed pure digital DSP performance. The absence of analog signals – required for typical motion controller/drive interfacing – enables higher gains, better overall performance and tighter integration, while significantly driving down costs and setup time. The Geo Brick LV’s embedded 32-axis Turbo PMAC2 motion controller is programmable for virtually any kind of motion control application. The built-in software PLCs allow for complete machine logic control. The Geo Brick LV supports the following types of motors: Three-Phase AC/DC Brushless, synchronous rotary/linear DC Brush 2-Phase Stepper The Geo Brick LV can also provide pulse and direction PFM output(s) to third-party stepper amplifiers. Note Documentation In conjunction with this user manual, the Turbo Software Reference Manual and Turbo PMAC User Manual are essential for proper use, motor setup, and configuration of the Geo Brick LV. It is highly recommended to refer to the latest revision of the manuals found on Delta Tau’s website, under Support>documentation>Manuals: Delta Tau Manuals Introduction 11 Geo Brick LV User Manual Downloadable Turbo PMAC Script ! Caution Some code examples require the user to input specific information pertaining to their system hardware. When user information is required, a commentary ending with –User Input is inserted. This manual contains downloadable code samples in Turbo PMAC script. These examples can be copied and pasted into the editor area in the Pewin32pro2. Care must be taken when using pre-configured Turbo PMAC code, some information may need to be updated to match hardware and system specific configurations. Downloadable Turbo PMAC Scripts are enclosed in the following format: // TURBO PMAC SCRIPT EXAMPLE P1=0 Open PLC 1 Clear CMDP"Geo Brick LV Manual Test PLC" P1=P1+1 Disable PLC 1 Close ! Caution ; ; ; ; ; ; Set P1=0 at download Open PLC Buffer 1, clear contents Send unsolicited response to host port Counter using variable P1 Disable plc 1 Close open buffer All PLC examples are stated in PLC number 1. It is the user’s responsibility to arrange their application PLCs’ properly and handle power-on sequencing for various tasks. It is the user’s responsibility to use the PLC examples presented in this manual properly. That is, incorporating the statement code in the application configuration, and handling tasks in a sequential manner. For example, with serial absolute encoders, setting up the global control registers should be executed before trying to read absolute position, and absolute phase referencing. Furthermore, other PLC programs (which would be trying to move motors) should be disabled until these functions are executed. ! Caution Introduction Often times, downloadable example codes use suggested M-variables, it is the user’s responsibility to make sure they are downloaded, or perform necessary changes to use the intended registers. 12 Geo Brick LV User Manual SPECIFICATIONS Part Number A B GB D 4 - C C 0-4 D 0 E 0- 0 A F 0 G H ** 0 0 I ** ** 0 0 0 ** 0 B CPU Options – GBDA-BB-CDD-EFGHHHI0 Turbo PMAC 2 Processor Axes GBDA-BB-CDD-EFGHHHI0 4 : Four Axes (Default) 8 : Eight Axes C0: 80Mhz, 8Kx24 Internal, 256Kx24SRAM, 1MB Flash (Default) C3: 80Mhz, 8Kx24 Internal, 1Mx24SRAM, 4MB Flash F3: 240Mhz, 192Kx24 Internal, 1Mx24SRAM, 4MB Flash C Axes 1 to 4 Options GBDA-BB-CDD-EFGHHHI0 1: 0.25A / 0.75A - 4 Phase (Servo / Stepper outputs) 2: 1A / 3A - 4 Phase (Servo / Stepper outputs) 4: 5A /15A - 4 Phase (Servo / Stepper outputs) Axes 5 to 8 Options GBDA-BB-CDD-EFGHHHI0 D 12-24V 5V Flags 00 02 P3 4 axes 05 Four primary encoder inputs. No secondary encoders, 4-axis system 07 Four secondary encoders for a total of 8 encoder inputs P8 PWM amplifier Interface for channel 7 with encoders for axes 5 to 8 ( 4 secondary encoders) (Call factory if PWM on Channel 8 is needed) 12 22 42 8 axes 17 0.25A/ 0.75A - 4 Phase Servo / Stepper output, with encoders and Flags for every axis. 27 1A / 3A - 4 Phase Servo / Stepper output, with encoders and Flags for every axis. /15A - 4 Phase Servo / Stepper output, with encoders and Flags for every axis. 47 5A Example: For 5V flag inputs then specify it at the “Channel 5 to 8 Encoder/Flag Options” “07" Four secondary encoder inputs (total of 8 encoder inputs), 5V Flag inputs - i.e. GBDx-xx-407-xxxxxxx If the above Number of Amplifier Axes are selected, then only the corresponding Axes Options are available. Digital I/O Option GBDA-BB-CDD-EFGHHHI0 E 0: 16 IN / 8 OUT (Default) 1: Expanded digital I/O, additional 16 inputs and 8 outputs (Total of 32 IN / 16 OUT) Outputs rated: 0.5A@12-24VDC Analog I/O Options GBDA-BB-CDD-EFGHHHI0 F 4 axes 00 / 05 02 / 07 0: No options (Default) 2: Four GPIO Relays (On connectors X9-X12) 3: Two Analog In, two analog Out (On conn. X11-X12) & 4 GPIO Relays (On connectors X9-X12) 4: Four Analog In, four analog Out (On conn. X9-X12) & 4 GPIO Relays (On connectors X9-X12) 5: Two Analog In, two analog Out (On conn. X11-X12) & 2 AENA Relays for Chan. 3&4 (On conn. X11-X12) and 2 GPIO Relays (On conn. X9-X10) 6: Four Analog In, four analog Out (Connectors X9-X12) with 2 AENA Relays for Chan. 3&4 (On conn. X11-X12) and 2 GPIO Relays (On conn. X9-X10) 9: Two AENA Relays for Chan.3&4 (Conn.X11-X12) and 2 GPIO Relays (On conn.X9-X10) 4 axes P3 / P8 0: No options (Default) 2: Four GPIO Relays (On connectors X9-X12) 7: Two Analog In, 2 analog Out (Conn.X9-X10) & 4 GPIO Relays (On connectors X9-X12) 8: Two Analog In, 2 analog Out (Conn.X9-X10) & 2 AENA Relays for Chan. 3&4 (On conn. X11-X12) and 2 GPIO Relays (On connectors X9-X10) 9: Two AENA Relays for Chan.3&4 (Conn.X11-X12) and 2 GPIO Relays (On conn.X9-X10) 8 axes 42 / 47 0: No Analog Options available, for this configurations To receive Analog Inputs for these configurations, you must order GBD-ABB-CDD-EFGHHHI0 MUXED ADC Option in “MACRO and Special Feedback Options” 2: Four GPIO Relays (On connectors X9-X12) 9: Four AENA Relays for Chan.3&4 (On conn.X11-X12) and Chan.5&6 (On conn.X9-X10) Note: Analog outputs are 12-bit filtered PWM and Analog Inputs are 16-bit. Specifications 13 Geo Brick LV User Manual MACRO and Special Feedback Options Note: If any of the “H” or “I” digits (GBDA-BB-CDD-EFGHHHI0) are ordered, you will also receive RS-232 comms port, 1 channel "handwheel" port. Special Feedback Number and Type of Channels GBDA-BB-CDD-EFGHHHI0 000: No Special Feedback Channels 4A0: 4 Sinusoidal Encoder Feedback Channels 4B0: 4 Resolver Feedback Channels 4C1: 4 Serial Encoder Feedback Channels (SSI Protocol) 4C2: 4 Serial Encoder Feedback Channels (Yaskawa Sigma II & III Protocol) 4C3: 4 Serial Encoder Feedback Channels (EnDat 2.2 Protocol) 4C6: 4 Serial Encoder Feedback Channels (BISS-B & C Protocol) 4C7: 4 Serial Encoder Feedback Channels (Tamagawa Protocol) 4C8: 4 Serial Encoder Feedback Channels (Panasonic Protocol) 4D1: 4 Sinusoidal Encoder and Serial Enc. (SSI Protocol) 4D2: 4 Sinusoidal Encoder and Serial Enc. (Yaskawa Sigma II & III & V Protocol) 4D3: 4 Sinusoidal Encoder and Serial Enc. (EnDat 2.1 / 2.2 Protocol) 4D4: 4 Sinusoidal Encoder and Serial Enc. (HiperFace Protocol) 4D6: 4 Sinusoidal Encoder and Serial Enc. (BISS-B & C Protocol) 4D7: 4 Sinusoidal Encoder and Serial Enc. (Tamagawa Protocol) 4D8: 4 Sinusoidal Encoder and Serial Enc. (Panasonic Protocol) 4E1: 4 Resolver Feedback Channels and Serial Enc. (SSI Protocol) 4E2: 4 Resolver Feedback Ch. and Serial Enc. (Yaskawa Sigma II & III & V Prot.) 4E3: 4 Resolver Feedback Channels and Serial Enc. (EnDat 2.2 Protocol) 4E6: 4 Resolver Feedback Channels and Serial Enc. (BISS-B & C Protocol) 4E7: 4 Resolver Feedback Channels and Serial Enc. (Tamagawa Protocol) 4E8: 4 Resolver Feedback Channels and Serial Enc. (Panasonic Protocol) 8A0: 8 Sinusoidal Encoder Feedback Channels 8B0: 8 Resolver Feedback Channels 8C1: 8 Serial Encoder Feedback Channels (SSI Protocol) 8C2: 8 Serial Encoder Feedback Channels (Yaskawa Sigma II & III & V Protocol) 8C3: 8 Serial Encoder Feedback Channels (EnDat 2.2 Protocol) 8C6: 8 Serial Encoder Feedback Channels (BISS-B & C Protocol) 8C7: 8 Serial Encoder Feedback Channels (Tamagawa Protocol) 8C8: 8 Serial Encoder Feedback Channels (Panasonic Protocol) 8D1: 8 Sinusoidal Encoder and Serial Enc. (SSI Protocol) 8D2: 8 Sinusoidal Encoder and Serial Enc. (Yaskawa Sigma II & III & V Protocol) 8D3: 8 Sinusoidal Encoder and Serial Enc. (EnDat 2.1 / 2.2 Protocol) 8D4: 8 Sinusoidal Encoder and Serial Enc. (HiperFace Protocol) 8D6: 8 Sinusoidal Encoder and Serial Enc. (BISS-B & C Protocol) 8D7: 8 Sinusoidal Encoder and Serial Enc. (Tamagawa Protocol) 8D8: 8 Sinusoidal Encoder and Serial Enc. (Panasonic Protocol) 8E1: 8 Resolver Feedback Channels and Serial Enc. (SSI Protocol) 8E2: 8 Resolver Feedback Ch. and Serial Enc. (Yaskawa Sigma II & III & V Prot.) 8E3: 8 Resolver Feedback Channels and Serial Enc. (EnDat 2.2 Protocol) 8E6: 8 Resolver Feedback Channels and Serial Enc. (BISS-B & C Protocol) 8E7: 8 Resolver Feedback Channels and Serial Enc. (Tamagawa Protocol) 8E8: 8 Resolver Feedback Channels and Serial Enc. (Panasonic Protocol) MACRO Ring Interface and 8 Single or 4 Differential channel 12-bit 10v range MUXED ADC H I GBDA-BB-CDD-EFGHHHI0 0: No MACRO or ADC 1: RJ45 MACRO 2: Fiber Optic MACRO 3: MUXED ADC 4: RJ45 MACRO and MUXED ADC 5: Fiber Optic MACRO and MUXED ADC Specifications 14 Geo Brick LV User Manual Geo Brick LV Options CPU Options C0: C3: F3: 80MHz Turbo PMAC2 CPU (standard) 8Kx24 internal memory, 256Kx24 SRAM, 1MB flash memory 80MHz Turbo PMAC2 CPU 8Kx24 internal memory, 1Mx24 SRAM, 4MB flash memory 240MHz Turbo PMAC2 CPU 192Kx24 internal memory, 1Mx24 SRAM, 4MB flash memory Encoder Feedback Type Digital Quadrature Sinusoidal HiperFace Resolver Note SSI EnDat 2.1 / 2.2 Yaskawa Sigma II / III BiSS B / C Panasonic Tamagawa Regardless of the encoder feedback option(s) fitted, digital quadrature encoders can always be utilized. However, Hall sensors cannot be used with a channel which has been programmed for serial clocking. Axes Power 0.25A RMS continuous, 0.75 A RMS peak 1 A RMS continuous, 3 A RMS peak 5 A RMS continuous, 15 A RMS peak Encoder Input Up to eight encoder inputs, and one handwheel quadrature input Additional encoder inputs can be obtained through MACRO connectivity Digital Inputs/Outputs Up to 32 inputs and 16 outputs (Sinking or Sourcing) Additional digital I/Os can be obtained through Fieldbus connectivity Analog Inputs, DAC Outputs, Brakes, and Relays Up to 4 x 16-bit analog inputs, 8 x 12-bit analog inputs, 4 x brake/ relay outputs , and 5 x 12-bit filtered PWM (±10V) outputs Communication USB 2.0, Ethernet 100 Base T, RS232, DPRAM (required for NC software/applications) Fieldbus Connectivity MACRO ModBus Specifications 15 Geo Brick LV User Manual Environmental Specifications Specification Description Range Ambient operating Temperature EN50178 Class 3K3 – IEC721-3-3 Storage Temperature Range EN 50178 Class 1K4 – IEC721-3-1/2 Minimum operating temperature Maximum operating temperature Minimum Storage temperature Maximum Storage temperature Minimum Relative Humidity Maximum Relative Humidity up to 35°C (95°F) Maximum Relative Humidity from 35°C up to 50°C (122°F) 0~1000m (0~3300ft) 1000 ~3000m (3300~9840ft) 3000 ~4000m (9840~13000ft) 0°C (32°F) 45°C (113°F) -25°C (-13°F) 70°C (158°F) 5% HU Humidity Characteristics w/ no condensation and no formation of ice IEC721-3-3 De-rating for Altitude Environment ISA 71-04 Atmospheric Pressure EN50178 class 2K3 Shock Vibration Air Flow Clearances Cooling Standard IP Protection Specifications 95% HU 85% HU No de-rating -0.01%/m -0.02%/m Degree 2 environments 70 KPa to 106 KPa Unspecified Unspecified 3" (76.2mm) above and below unit for air flow Natural convection and external fan IP20 IP 55 can be evaluated for custom applications 16 Geo Brick LV User Manual Electrical Specifications Current Output Nominal Current Per Axis [Amps RMS] Peak Current Per Axis [Amps RMS] @ 1 sec 0.25 A 0.75 A 1A 3 A 5A 15 A Possible Configurations Max ADC Axis Current Rating Max ADC 0.25A / 0.75A 1.6925 A 1A / 3A 6.770 A 5A / 15A 33.85 A Full Range ADC Current Reading ( I2T Settings) Logic Power Supply Requirements 4-Axis Input Voltage [VDC] 8-Axis 24VDC ±5% Continuous Current Input [amps RMS] 4A 0.25A/0.75A PWM Frequency Range [KHz] 1A/3A 5A/15A < 100 KHz (40KHz recommended) < 30 KHz (20KHz recommended) Bus Power Supply Requirements 4-Axis 8-Axis Axes Configuration 0.25A/0.75A 1A/3A 5A/15A 0.25A/0.75A 1A/3A 5A/15A Nominal Voltage [VDC] 12 – 60 VDC Maximum Voltage [VDC] 80 VDC Continuous Current [Amps RMS] 1 4 12.5 2 8 25 Peak Current [Amps RMS] @ 1 sec 3 12 25 6 24 50 Specifications 17 Geo Brick LV User Manual Bus Line Recommended Slow-Acting Fuse (24 - 48 VDC @ recommended frequency) 0.25A/0.75A 1A/3A 5A/15A 4-Axis 2.5A 8A 25A 8-Axis 5A 15A 25A 100 KHz 40 KHz 20 KHz Power Dissipation Per Axis [watts] 24 VDC 48 VDC 0.25A/0.75A 1A/3A 5A/15A 0.25A/0.75A 1A/3A 5A/15A Max. Output Power – Nominal current 1.6W 3.1W 12.8 W 1.8W 3.8W 16.4 W Max. Sinusoidal Output 7.5W 29.5W 147 W 15W 59W 294 W Max. Output Power – Nominal current 2.9W 4.9W - 3.3W 6.3W - Max. Sinusoidal Output 7.5W 29.5W - 15W 59W - Max. Output Power – Nominal current 6.9W 10.5W - 7.8W 14.1W - Max. Sinusoidal Output 7.5W 29.5W - 15W 59W - 24 VDC 48 VDC Axis Efficiency [%] 0.25A/0.75A 1A/3A 5A/15A 0.25A/0.75A 1A/3A 5A/15A Max. Output Power – Nominal current – 20 KHz Max. Output Power – Nominal current – 40 KHz Max. Sinusoidal Output – 100 KHz Specifications 82% 90.5% 92% 89% 94% 95% 72% 85.5% - 82% 90% - 52% 74% - 66% 81% - 18 Geo Brick LV User Manual RECEIVING, UNPACKING, AND MOUNTING Delta Tau products are thoroughly tested at the factory and carefully packaged for shipment. When the Geo Brick LV is received, there are several things to be done immediately: Observe the condition of the shipping container and report any damage immediately to the commercial carrier that delivered the drive. Remove the drive from the shipping container and remove all packing materials. Check all shipping material for connector kits, documentation, or other small pieces of equipment. Be aware that some connector kits and other equipment pieces may be quite small and can be accidentally discarded if care is not used when unpacking the equipment. The container and packing materials may be retained for future shipment. Verify that the part number of the drive received is the same as the part number listed on the purchase order. Inspect the drive for external physical damage that may have been sustained during shipment and report any damage immediately to the commercial carrier that delivered the drive. Electronic components in this product are design-hardened to reduce static sensitivity. However, use proper procedures when handling the equipment. If the Geo Brick LV is to be stored for several weeks before use, be sure that it is stored in a location that conforms to published storage humidity and temperature specifications. Use of Equipment The following restrictions will ensure the proper use of the Geo Brick LV: The components built into electrical equipment or machines can be used only as integral components of such equipment. The Geo Brick LV must not be operated on power supply networks without a ground or with an asymmetrical ground. If the Geo Brick LV is used in residential areas, or in business or commercial premises, implement additional filtering measures. The Geo Brick LV may be operated only in a closed switchgear cabinet, taking into account the ambient conditions defined in the environmental specifications. Receiving, Unpacking, and Mounting 19 Geo Brick LV User Manual Mounting The location of the Geo Brick LV is important. Installation should be in an area that is protected from direct sunlight, corrosives, harmful gases or liquids, dust, metallic particles, and other contaminants. Exposure to these can reduce the operating life and degrade performance of the drive. Several other factors should be carefully evaluated when selecting a location for installation: For effective cooling and maintenance, the Geo Brick LV should be mounted on a smooth, nonflammable vertical surface. At least 76 mm (3 inches) top and bottom clearance must be provided for air flow. At least 10 mm (0.4 inches) clearance is required between units (each side). Temperature, humidity and Vibration specifications should also be taken in account. ! Caution Unit must be installed in an enclosure that meets the environmental IP rating of the end product (ventilation or cooling may be necessary to prevent enclosure ambient from exceeding 45° C [113° F]). The Geo Brick LV can be mounted with a traditional 3-hole panel mount, two U shape/notches on the bottom and one pear shaped hole on top. If multiple Geo Brick LVs are used, they can be mounted side-by-side, leaving at least a 122 mm clearance between drives. This means a 122 mm center-to-center distance (0.4 inches). It is extremely important that the airflow is not obstructed by the placement of conduit tracks or other devices in the enclosure. If the drive is mounted to a back panel, the back panel should be unpainted and electrically conductive to allow for reduced electrical noise interference. The back panel should be machined to accept the mounting bolt pattern of the drive. The Geo Brick LV can be mounted to the back panel using three M4 screws and internal-tooth lock washers. It is important that the teeth break through any anodization on the drive’s mounting gears to provide a good electrically conductive path in as many places as possible. Mount the drive on the back panel so there is airflow at both the top and bottom areas of the drive (at least three inches). Receiving, Unpacking, and Mounting 20 Geo Brick LV User Manual Connector Locations Top View Encoder #1 Encoder #5 AMP 1 Encoder #2 Encoder #6 24VDC Logic Power General Purpose I/O STO Safe Torque Off AMP 2 USB MACRO Ethernet AMP 3 Abort & WD RS232 AMP 4 Encoder #3 Encoder #7 AMP 5 Encoder #4 Encoder #8 AMP 6 Limits & Flags AMP 7 Analog I/O AMP 8 Alt. Enc. Pwr PWM Interface AC/DC Bus Power Input Analog I/O Handwheel Front View Receiving, Unpacking, and Mounting Bottom View 21 Geo Brick LV User Manual CAD Drawing GBD4-xx-xxx-xxx-xxxxxx and GBD8-xx-xxx-xxx-xxxxxx Width Depth Case Dimensions 4’’(101.6mm) 7.2’’(182.88mm) 14.62" (371.35 mm) Height 15.4’’(391.16mm) Weight 9.6 lbs (4.4Kg) 15.40" (391.16 mm) 2.50" (63.50 mm) 3 x M4 13.50" (342.90 mm) 7.20" (182.88 mm) 4.00" (101.60 mm) Receiving, Unpacking, and Mounting 22 Geo Brick LV User Manual PINOUTS AND SOFTWARE SETUP WARNING Installation of electrical control equipment is subject to many regulations including national, state, local, and industry guidelines and rules. General recommendations can be stated but it is important that the installation be carried out in accordance with all regulations pertaining to the installation. TB1: 24VDC Logic Input This 3-pin Phoenix Terminal Block is used to bring in the 24-Volt DC supply to power up the logic portion of the Geo Brick LV. This power can remain on regardless of the main DC bus power, allowing the signal electronics to be active while the main motor power control may be passive. The 24Volts power supply must be capable of providing 2~4Amps per Geo Brick LV. If multiple drives are sharing the same 24-Volt power supply, it is highly recommended to wire each drive back to the power supply terminals separately. This connection can be made using a 22 AWG wire directly from a protected power supply. Pin # Symbol Function 1 +24VDC Input 2 CHGND Ground 3 +24VDC RET Common Description Logic power input + +16~32VDC Chassis ground Connect to Protection Earth Logic power return - Connect to Power Supply Return Phoenix Contact mating connector part# 1735879 Delta Tau mating connector part# 016-090A03-08P 24 VDC Power Supply PinOuts and Software Setup Notes 1 2 3 +24VDC COM 23 Geo Brick LV User Manual TB3: Safe Torque Off (STO) This 5-pin Phoenix Terminal Block connector is used to wire the Safe Torque Off (STO) safety function or alternately disabling it. Note The STO feature (and connector) was introduced into the Geo Brick LV in October of 2012. It will be installed on all new shipments and certain RMAs. The STO allows the complete “hardware” disconnection of the power amplifiers from the motors. This mechanism prevents unintentional “movement of” or torque output to the motors in accordance with IEC/EN safety standards. Pin # Symbol Function Description 1 STO OUT Output STO Output 2 STO IN 1 Input STO Input #1 3 STO IN 2 Input STO Input #2 4 STO DISABLE - STO disable 5 STO DISABLE RTN - STO disable return 1 2 3 4 Phoenix Contact Mating Connector Part #: 1850699 Delta Tau mating connector part # 5 5 4 3 2 1 Dynamic Braking Traditionally, and before the introduction of the STO, when an axis is killed the motor leads are shorted internally (inside the Geo Brick LV) causing “dynamic braking”, which stops the motor from coasting freely. The STO feature alters slightly how the dynamic braking is applied. The following table summarizes the various conditions of dynamic braking when an axis is killed: Safe Torque Off (STO) Dynamic Braking Disabled (not wired) Enabled (wired) but Not Triggered Enabled (wired) and Triggered PinOuts and Software Setup 24 Geo Brick LV User Manual Disabling the STO Disabling the STO maintains full backward compatibility with existing systems, pre-STO installations. This can be simply done by tying STO disable (pin #4) to STO Disable RTN (pin #5). 1 STO Out 2 STO IN 1 3 STO IN 2 Pins 1, 2 and 3 have no practical use in this mode, and should be left floating. 4 STO DISABLE 5 STO DISABLE RTN TB3 Wiring and Using the STO Single STO Trigger Dual STO Trigger(s) TB1 COM 24 VDC Power Supply +24 VDC TB1 3 +24VRET 3 +24VRET 2 CHGND 2 CHGND 1 + 24VDC 1 + 24VDC 1 STO Out 1 STO Out 2 STO IN 1 2 STO IN 1 3 STO IN 2 3 STO IN 2 4 STO DISABLE 4 STO DISABLE 5 STO DISABLE RTN 5 STO DISABLE RTN Input to Brick/Logic N.C COM 24 VDC Power Supply +24 VDC Input to Brick/Logic N.C TB3 TB3 In normal mode operation, the STO relay(s) must be normally closed. +24VDC must be applied to both STO inputs (pins #2, #3) to allow power to the motors. The STO is triggered, and power is disconnected from the motors, if the +24V is disconnected from either STO inputs (pins #2, #3). The STO Out (pin #1) is a voltage status output rated to 24 VDC ±10% at a max of 125mA. It reflects the status of the STO function: (24 V) in normal mode operation (+24VDC connected to both STO inputs) ( 0 V) in triggered mode (+24VDC disconnected from either STO inputs) Certain safety standards require dual protection, thus mandating the use of two STO input triggers. The STO relay(s) can be wired in series with the E-Stop circuitry which typically disconnects the main bus power from the system. Summary of operation and status: +24 VDC STO State STO Out Applied to both STO Inputs Not Triggered (normal mode operation) 24V Disconnected from either STO inputs Triggered 0V PinOuts and Software Setup 25 Geo Brick LV User Manual J1: DC Bus Input This 3-pin connector is used to bring in the main DC bus (motor) power. The mating connecter is a Molex male 10.00mm (.393") Pitch Mini-Fit Sr.™ Receptacle Housing, Single Row, 3 Circuits. Pin # Symbol Function Description Notes 1 BUS+ Input Bus power input Bus+ +12~60VDC 2 BUS- Common Bus power return Bus- Return Line 3 BUS- Common Bus power return Bus- Return Line BUS+ Molex mating connector part# 0428160312 Delta Tau mating connector part # 016-090003-049 BUS- This connection can be made using the following wire gauge and fusing: Model Fuse (FRN/LPN) Wire Gauge 4-Axis (GBD4-xx-xxx) 15 A 12 AWG 8-Axis (GBD8-xx-xxx) 25 A 10 AWG PinOuts and Software Setup 26 Geo Brick LV User Manual Power On/Off Sequence ! The main bus power should NEVER be brought into the Geo Brick LV if the 24V logic power is NOT applied. Caution ! Caution Make sure that no motor commands (e.g. phasing, jogging, open loop) are being executed by the controller (PMAC) at the time of applying main bus power. Powering up a Geo Brick LV must obey the following procedure: 1. Apply 24V logic power 2. Wait a minimum of ~ 2 seconds 3. Apply main bus power ! When the main DC bus motor power is disconnected, a Kill command should be sent to all motors (e.g. via logic PLC or HMI). Caution Powering down a Geo Brick LV must obey the following procedure: 1. Disconnect main bus power 2. Wait a minimum of ~ 1 second 3. Disconnect 24V logic power ! The loss of DC bus motor power in the Geo Brick LV is not an amplifier fault condition. Caution The loss of DC bus motor power in the Geo Brick LV is not an amplifier fault condition. Killing all motors upon disconnecting bus power is highly recommended. In this scenario, if the controller is programmed to persistently enable a motor (bad practice), it will not know that the bus has been disconnected (no amplifier fault). Therefore, as soon as the DC bus is reapplied, it will try to enable which results in an in-rush current (hardware damage) and unexpected – dangerous – motor move. PinOuts and Software Setup 27 Geo Brick LV User Manual J4: Limits, Flags, EQU [Axis 1- 4] J4 is used to wire axis/channels 1 through 4 over travel limit switches, home and user flags, and EQU output. The limits and flags can be ordered either 5V or 12-24V. The EQU output is always 5V. Per axis/channel, there are 2 limit inputs, 2 flag inputs, and 1 EQU output: - Positive limit. Negative limit - Home flag. User flag - EQU To avoid machine/equipment damage and before applying power or connecting any of the flags; make sure that your electrical design/wiring is in accordance with the Geo Brick LV’s part number option for 5- or 24-volt connection Caution ! J4: D-sub DB-25F Mating: D-sub DB-25M Pin # 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 Symbol USER1 MLIM1 FL_RT1 USER2 MLIM2 FL_RT2 USER3 MLIM3 FL_RT3 USER4 MLIM4 FL_RT4 GND PLIM1 HOME1 EQU1 PLIM2 HOME2 EQU2 PLIM3 HOME3 EQU3 PLIM4 HOME4 EQU4 Note 13 12 25 11 24 Function Input Input Input Input Input Input Input Input Input Input Input Input Input Input Output Input Input Output Input Input Output Input Input Output 10 23 9 22 8 21 7 20 6 19 5 18 4 17 3 16 2 15 1 14 Description User Flag 1 Negative Limit 1 Flag Return 1 User Flag 2 Negative Limit 2 Flag Return 2 User Flag 3 Negative Limit 3 Flag Return 3 User Flag 4 Negative Limit 4 Flag Return 4 Common Positive Limit 1 Home Flag 1 Compare Output, EQU 1 TTL (5V) level Positive Limit 2 Home Flag 2 Compare Output, EQU 2 TTL (5V) level Positive Limit 3 Home Flag 3 Compare Output, EQU 3 TTL (5V) level Positive Limit 4 Home Flag 4 Compare Output, EQU 4 TTL (5V) level For 5V flags (internal use): Install RP39, RP43, RP47 and RP51. 1Kohm Sip, 8-pin, four independent Resistors. For 12-24Vflags: Empty bank (Default). PinOuts and Software Setup 28 Geo Brick LV User Manual J5: Limits, Flags, EQU [Axis 5- 8] J5 is used to wire axis/channels 5 through 8 over travel limit switches, home, user flags, and EQU output. The limits and flags can be ordered either 5V or 12-24V. The EQU output is always 5V. Per axis/channel, there are 2 limit inputs, 2 flag inputs, and 1 EQU output: - Positive limit. Negative limit - Home flag. User flag - EQU To avoid machine/equipment damage and before applying power or connecting any of the flags; make sure that your electrical design/wiring is in accordance with the Geo Brick LV’s part number option (5- or 24-volts) Caution ! J5: D-sub DB-25F Mating: D-sub DB-25M Pin # 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 Symbol USER5 MLIM5 FL_RT5 USER6 MLIM6 FL_RT6 USER7 MLIM7 FL_RT7 USER8 MLIM8 FL_RT8 GND PLIM5 HOME5 BEQU5 PLIM6 HOME6 BEQU6 PLIM7 HOME7 BEQU7 PLIM8 HOME8 BEQU8 Note 13 12 25 11 24 Function Input Input Input Input Input Input Input Input Input Input Input Input Input Input Output Input Input Output Input Input Output Input Input Output 10 23 9 22 8 21 7 20 6 19 5 18 4 17 3 16 2 15 1 14 Description User Flag 5 Negative Limit 5 Flag Return 5 User Flag 6 Negative Limit 6 Flag Return 6 User Flag 7 Negative Limit 7 Flag Return 7 User Flag 8 Negative Limit 8 Flag Return 8 Common Positive Limit 5 Home Flag 5 Compare Output EQU 5, TTL (5V) level Positive Limit 6 Home Flag 6 Compare Output EQU 6, TTL (5V) level Positive Limit 7 Home Flag 7 Compare Output EQU 7, TTL (5V) level Positive Limit 8 Home Flag 8 Compare Output EQU 8, TTL (5V) level For Delta Tau’s internal use: For 5V flags: Install RP89, RP93, RP97 and RP101 1Kohm Sip, 8-pin, four independent Resistors. For 12-24Vflags: Empty bank (Default). PinOuts and Software Setup 29 Geo Brick LV User Manual Wiring the Limits and Flags The Geo Brick allows the use of sinking or sourcing limits and flags. The opto-isolator IC used is a PS2705-4NEC-ND quad phototransistor output type. This IC allows the current to flow from return to flag or from flag to return. Sinking into or sourcing out of the Geo Brick LV: Sourcing Limits And Flags Sinking Limits And Flags Note 14 1 15 2 16 3 17 4 18 5 19 6 20 7 21 8 22 9 23 24 25 17 18 19 20 21 22 23 10 11 12 16 3 4 5 6 7 FLAG RETURN 4/8 EQU 4/8 13 EQU 4/8 EQU 3/7 USER 4/8 NC POS. LIMIT 4/8 NC NEG. LIMIT 4/8 HOME 4/8 13 15 2 14 1 COM FLAG RETURN 4/8 EQU 2/6 USER 3/7 NC POS. LIMIT 3/7 NC NEG. LIMIT 3/7 HOME 3/7 FLAG RETURN 3/7 24 EQU 3/7 USER 4/8 NC POS. LIMIT 4/8 NC NEG. LIMIT 4/8 HOME 4/8 25 FLAG RETURN 3/7 EQU 1/5 USER 2/6 NC POS. LIMIT 2/6 NC NEG. LIMIT 2/6 HOME 2/6 FLAG RETURN 2/6 8 EQU 2/6 USER 3/7 NC POS. LIMIT 3/7 NC NEG. LIMIT 3/7 HOME 3/7 9 FLAG RETURN 2/6 USER 1/5 NC POS. LIMIT 1/5 NC NEG. LIMIT 1/5 HOME 1/5 FLAG RETURN 1/5 10 EQU 1/5 USER 2/6 NC POS. LIMIT 2/6 NC NEG. LIMIT 2/6 HOME 2/6 11 FLAG RETURN 1/5 12 USER 1/5 NC POS. LIMIT 1/5 NC NEG. LIMIT 1/5 HOME 1/5 +5VDC / +24VDC 5 or 24 VDC Power supply +5VDC / +24VDC COM 5 or 24 VDC Power supply Per channel, the flags can be either sinking or sourcing depending on the flag return wiring. The over travel limits must be normally closed switches. They can be disabled (Ixx24) but they are not software configurable. PinOuts and Software Setup 30 Geo Brick LV User Manual Limits and Flags [Axis 1- 4] Suggested M-Variables M115->X:$078000,19 M116->X:$078000,9 M120->X:$078000,16 M121->X:$078000,17 M122->X:$078000,18 ; ; ; ; ; User 1 flag input status EQU1, ENC1 compare output value Home flag 1 input status Positive Limit 1 flag input status Negative Limit 1 flag input status M215->X:$078008,19 M216->X:$078008,9 M220->X:$078008,16 M221->X:$078008,17 M222->X:$078008,18 ; ; ; ; ; User 2 flag input status EQU2, ENC2 compare output value Home flag 2 input status Positive Limit 2 flag input status Negative Limit 2 flag input status M315->X:$078010,19 M316->X:$078010,9 M320->X:$078010,16 M321->X:$078010,17 M322->X:$078010,18 ; ; ; ; ; User 3 flag input status EQU3, ENC3 compare output value Home flag 3 input status Positive Limit 3 flag input status Negative Limit 3 flag input status M415->X:$078018,19 M416->X:$078018,9 M420->X:$078018,16 M421->X:$078018,17 M422->X:$078018,18 ; ; ; ; ; User 4 flag input status EQU4, ENC4 compare output value Home flag 4 input status Positive Limit 4 flag input status Negative Limit 4 flag input status Limits and Flags [Axis 5- 8] Suggested M-Variables M515->X:$078100,19 M516->X:$078100,9 M520->X:$078100,16 M521->X:$078100,17 M522->X:$078100,18 ; ; ; ; ; User 5 flag input status EQU5, ENC5 compare output value Home flag 5 input status Positive Limit 5 flag input status Negative Limit 5 flag input status M615->X:$078108,19 M616->X:$078108,9 M620->X:$078108,16 M621->X:$078108,17 M622->X:$078108,18 ; ; ; ; ; User 6 flag input status EQU6, ENC6 compare output value Home flag 6 input status Positive Limit 6 flag input status Negative Limit 6 flag input status M715->X:$078110,19 M716->X:$078110,9 M720->X:$078110,16 M721->X:$078110,17 M722->X:$078110,18 ; ; ; ; ; User 7 flag input status EQU7, ENC7 compare output value Home flag 7 input status Positive Limit 7 flag input status Negative Limit 7 flag input status M815->X:$078118,19 M816->X:$078118,9 M820->X:$078118,16 M821->X:$078118,17 M822->X:$078118,18 ; ; ; ; ; User 8 flag input status EQU8, ENC4 compare output value Home flag 8 input status Positive Limit 8 flag input status Negative Limit 8 flag input status PinOuts and Software Setup 31 Geo Brick LV User Manual J6: General Purpose Inputs and Outputs J6 is used to wire general purpose digital inputs/outputs to the Geo Brick LV. J6: D-sub DC-37F Mating: D-sub DC-37M Pin # 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 Symbol GPI1 GPI3 GPI5 GPI7 GPI9 GPI11 GPI13 GPI15 IN_COM1-8 OUT-RET OUT_COM GP01GP02GP03GP04GP05GP06GP07GP08GPI2 GPI4 GPI6 GPI8 GPI10 GPI12 GPI14 GPI16 IN_COM9-16 OUT_COM GP01+ GP02+ GP03+ GP04+ GP05+ GP06+ GP07+ GP08+ PinOuts and Software Setup 19 18 37 17 36 16 35 15 34 14 33 Function Input Input Input Input Input Input Input Input Common 01-08 Input Input Output Output Output Output Output Output Output Output Input Input Input Input Input Input Input Input Common 09-16 Input Output Output Output Output Output Output Output Output 13 32 12 31 11 30 10 29 9 28 8 27 7 26 6 25 5 24 4 23 3 22 2 21 1 20 Description Input 1 Input 3 Input 5 Input 7 Input 9 Input 11 Input 13 Input 15 Input 01 to 08 Common Outputs Return Outputs Common Sourcing Output 1 Sourcing Output 2 Sourcing Output 3 Sourcing Output 4 Sourcing Output 5 Sourcing Output 6 Sourcing Output 7 Sourcing Output 8 Input 2 Input 4 Input 6 Input 8 Input 10 Input 12 Input 14 Input 16 Input 09 to 16 Common Outputs Common Sinking Output 1 Sinking Output 2 Sinking Output 3 Sinking Output 4 Sinking Output 5 Sinking Output 6 Sinking Output 7 Sinking Output 8 32 Geo Brick LV User Manual J7: General Purpose Inputs and Outputs (Additional) J7 is used to wire the additional (optional) general purpose digital Inputs/Outputs to the Geo Brick. J7: D-sub DC-37F Mating: D-sub DC-37M Pin # 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 Symbol GPI17 GPI19 GPI21 GPI23 GPI25 GPI27 GPI29 GPI31 IN_COM 17-24 OUT-RET OUT_COM GPO9GPO10GPO11GPO12GPO13GPO14GPO15GPO16GPI18 GPI20 GPI22 GPI24 GPI26 GPI28 GPI30 GPI32 IN_COM_25-32 OUT_COM GPO9+ GPO10+ GPO11+ GPO12+ GPO13+ GPO14+ GPO15+ GPO16+ PinOuts and Software Setup 19 18 37 17 36 16 35 15 34 14 33 Function Input Input Input Input Input Input Input Input Common 17-24 Input Input Output Output Output Output Output Output Output Output Input Input Input Input Input Input Input Input Common 25-32 Input Output Output Output Output Output Output Output Output 13 32 12 31 11 30 10 29 9 28 8 27 7 26 6 25 5 24 4 23 3 22 2 21 1 20 Description Input 17 Input 19 Input 21 Input 23 Input 25 Input 27 Input 29 Input 31 Input 17 to 24 Common Outputs Return Outputs Common Sourcing Output 9 Sourcing Output 10 Sourcing Output 11 Sourcing Output 12 Sourcing Output 13 Sourcing Output 14 Sourcing Output 15 Sourcing Output 16 Input 18 Input 20 Input 22 Input 24 Input 26 Input 28 Input 30 Input 32 Input 25 to 32 Common Outputs Common Sinking Output 9 Sinking Output 10 Sinking Output 11 Sinking Output 12 Sinking Output 13 Sinking Output 14 Sinking Output 15 Sinking Output 16 33 Geo Brick LV User Manual About the Digital Inputs and Outputs All general purpose inputs and outputs are optically isolated. They operate in the 12–24 VDC range, and can be wired to be either sinking or sourcing. Inputs The inputs use the PS2505L-1NEC photocoupler. For sourcing inputs, connect the input common pin(s) to the 12–24V line of the power supply. The input devices are then connected to the common ground line of the power supply at one end, and individual input pins at the other. For sinking inputs, connect the input common pin(s) to the common ground line of the power supply. The input devices are then connected to the 12–24V line of the power supply at one end, and individual input pins at the other. The inputs can be wired either sourcing or sinking in sets of eight, with each set possessing its own common. Note Outputs The outputs, in the older models of the Geo Brick LV, use the PS2501L-1NEC photocoupler. They are rated to a maximum current of 500 mA, and are overload protected. The outputs, in the newer models of the Geo Brick LV (control board 603793-10A and later), use the PS2701-1NEC photocoupler. They are protected with a ZXMS6006DG; an enhancement mode MOSFET - diode incorporated. The protection involves over-voltage, over-current, I2T and short circuit. For sourcing outputs, connect the common collector (pin #29) to the 12–24V line of the power supply. The output devices are then connected to the common ground line of the power supply at one end, and individual sourcing output pins at the other. For sinking outputs, connect the common emitter (pin #11) to the common ground line of the power supply. The output devices are then connected to the 12–24V line of the power supply at one end, and individual sinking output pins at the other. Note Note Do not mix topologies for outputs. They are all either sinking or sourcing. If the common emitter is used, the common collector should not be connected and vice versa. Newer models of the Geo Brick LV were introduced in October of 2012 and can be recognized by the 5-pin terminal block STO connector which was not available previously. PinOuts and Software Setup 34 Geo Brick LV User Manual Wiring the Digital Inputs and Outputs The inputs and outputs can be wired to be either sourcing out of or sinking into the Geo Brick LV: Sourcing Inputs / Outputs Sinking Inputs / Outputs PinOuts and Software Setup 20 1 21 2 22 3 23 4 24 5 25 6 26 7 27 8 28 9 27 8 26 7 25 6 24 5 23 4 22 3 21 2 20 1 COM 29 30 31 32 13 33 14 37 18 36 17 35 16 34 15 14 13 12 30 31 32 33 34 OUTPUT 8 / 16 11 29 11 OUTPUT 7 / 15 12 OUTPUT 6 / 14 19 OUTPUT 8 / 16 35 OUTPUT 7 / 15 OUTPUT 5 / 13 36 OUTPUT 6 / 14 OUTPUT 4 / 12 37 OUTPUT 5 / 13 OUTPUT 3 / 11 15 OUTPUT 4 / 12 OUTPUT 2 / 10 16 OUTPUT 3 / 11 OUTPUT 1 / 9 17 OUTPUT 2 / 10 COM. EMIT COM. EMIT 18 OUTPUT 1 / 9 19 COM. COLLECT COM. COLLECT 10 IN COM 09-16 / 25-32 10 IN COM 09-16 / 25-32 INPUT 1 / 17 INPUT 2 / 18 INPUT 3 / 19 INPUT 4 / 20 INPUT 5 / 21 INPUT 6 / 22 INPUT 7 / 23 INPUT 8 / 24 INPUT 9 / 25 INPUT 10 / 26 INPUT 11 / 27 INPUT 12 / 28 INPUT 13 / 29 INPUT 14 / 30 INPUT 15 / 31 INPUT 16 / 32 IN COM 01-08 / 17-24 28 IN COM 01-08 / 17-24 9 INPUT 1 / 17 INPUT 2 / 18 INPUT 3 / 19 INPUT 4 / 20 INPUT 5 / 21 INPUT 6 / 22 INPUT 7 / 23 INPUT 8 / 24 INPUT 9 / 25 INPUT 10 / 26 INPUT 11 / 27 INPUT 12 / 28 INPUT 13 / 29 INPUT 14 / 30 INPUT 15 / 31 INPUT 16 / 32 +12VDC / +24VDC 12 - 24 VDC Power supply +12VDC / +24VDC COM 12 - 24 VDC Power supply 35 Geo Brick LV User Manual General Purpose I/Os (J6) Suggested M-Variables // Inputs: M1->Y:$78800,0,1 M2->Y:$78800,1,1 M3->Y:$78800,2,1 M4->Y:$78800,3,1 M5->Y:$78800,4,1 M6->Y:$78800,5,1 M7->Y:$78800,6,1 M8->Y:$78800,7,1 M9->Y:$78801,0,1 M10->Y:$78801,1,1 M11->Y:$78801,2,1 M12->Y:$78801,3,1 M13->Y:$78801,4,1 M14->Y:$78801,5,1 M15->Y:$78801,6,1 M16->Y:$78801,7,1 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 J6 J6 J6 J6 J6 J6 J6 J6 J6 J6 J6 J6 J6 J6 J6 J6 //Outputs: M33->Y:$078802,0,1 M34->Y:$078802,1,1 M35->Y:$078802,2,1 M36->Y:$078802,3,1 M37->Y:$078802,4,1 M38->Y:$078802,5,1 M39->Y:$078802,6,1 M40->Y:$078802,7,1 ; ; ; ; ; ; ; ; Output# Output 1 Output 2 Output 3 Output 4 Output 5 Output 6 Output 7 Output 8 J6 J6 J6 J6 J6 J6 J6 J6 Pin#1 Pin#20 Pin#2 Pin#21 Pin#3 Pin#22 Pin#4 Pin#23 Pin#5 Pin#24 Pin#6 Pin#25 Pin#7 Pin#26 Pin#8 Pin#27 Sourcing Pin#12 Pin#13 Pin#14 Pin#15 Pin#16 Pin#17 Pin#18 Pin#19 Sinking Pin#30 Pin#31 Pin#32 Pin#33 Pin#34 Pin#35 Pin#36 Pin#37 General Purpose I/Os Additional (J7) Suggested M-Variables // Inputs: M17->Y:$78803,0,1 M18->Y:$78803,1,1 M19->Y:$78803,2,1 M20->Y:$78803,3,1 M21->Y:$78803,4,1 M22->Y:$78803,5,1 M23->Y:$78803,6,1 M24->Y:$78803,7,1 M25->Y:$78804,0,1 M26->Y:$78804,1,1 M27->Y:$78804,2,1 M28->Y:$78804,3,1 M29->Y:$78804,4,1 M30->Y:$78804,5,1 M31->Y:$78804,6,1 M32->Y:$78804,7,1 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input //Outputs: M41->Y:$078805,0,1 M42->Y:$078805,1,1 M43->Y:$078805,2,1 M44->Y:$078805,3,1 M45->Y:$078805,4,1 M46->Y:$078805,5,1 M47->Y:$078805,6,1 M48->Y:$078805,7,1 ; ; ; ; ; ; ; ; Output# Output 09 Output 10 Output 11 Output 12 Output 13 Output 14 Output 15 Output 16 PinOuts and Software Setup 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 J7 Pin#1 Pin#20 Pint#2 Pin#21 Pin#3 Pin#22 Pin#4 Pin#23 Pin#5 Pin#24 Pin#6 Pin#25 Pin#7 Pin#26 Pin#8 Pin#27 Sourcing Pin#12 Pin#13 Pin#14 Pin#15 Pin#16 Pin#17 Pin#18 Pin#19 Sinking Pin#30 Pin#31 Pin#32 Pin#33 Pin#34 Pin#35 Pin#36 Pin#37 36 Geo Brick LV User Manual J8: PWM Amplifier Interface J8 is used to connect to third party PWM amplifiers. This is a limited option, contact technical support for setup details. PinOuts and Software Setup 37 Geo Brick LV User Manual J9: Handwheel and Analog I/O J9 is used to wire the additional analog inputs, handwheel encoder, analog output, and PFM output. J9: D-sub DB-25F Mating: D-sub DB-25M Pin # 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 Symbol AIN1 AIN3 AIN5 AIN7 +12V GND ANAOUTPULSEDIRHWA+ HWB+ HWC+ +5V AIN2 AIN4 AIN6 AIN8 -12V ANAOUT+ PULSE+ DIR+ GND HWAHWBHWC- Note 13 12 25 11 24 Function Input Input Input Input Output Common Output Output Output Input Input Input Output Input Input Input Input Output Output Output Output Common Input Input Input 10 23 9 22 8 21 7 20 6 19 5 18 4 17 3 16 2 15 1 14 Notes Analog Input #1 Analog Input #3 Analog Input #5 Analog Input #7 For troubleshooting (no practical use) Common Ground Analog Output Pulse Output Direction Output Handwheel Quadrature A Handwheel Quadrature B Handwheel Quadrature C For troubleshooting (no practical use) Analog Input #2 Analog Input #4 Analog Input #6 Analog Input #8 For troubleshooting (no practical use) Analog Output + Pulse Output + Direction Output + Common Ground Handwheel Quadrature A/ Handwheel Quadrature B/ Handwheel Quadrature C/ Analog Inputs at Y:$784B0 using PMAC option12. Analog Output at Y:$78412,8,16,S using Supp. Ch1* Output A. Pulse and Direction at Y:$7841C,8,16,S using Supp. Ch2* Output C. Handwheel Input at Y:$78410 using Supp. Ch1* Handwheel. PinOuts and Software Setup 38 Geo Brick LV User Manual Setting up the Analog Inputs (J9) AGND ADC5 AGND ADC6 AGND ADC7 AGND ADC8 14 ADC4 15 AGND 16 ADC3 17 AGND 2 ADC2 3 AGND 21 22 Unipolar Mode Bipolar Bipolar Bipolar Bipolar Bipolar Bipolar Bipolar Bipolar I5081=$000000 I5082=$000001 I5083=$000002 I5084=$000003 I5085=$000004 I5086=$000005 I5087=$000006 I5088=$000007 ; ; ; ; ; ; ; ; ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 Unipolar Unipolar Unipolar Unipolar Unipolar Unipolar Unipolar Unipolar 23 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 13 ; ; ; ; ; ; ; ; 24 Bipolar Mode I5081=$000008 I5082=$000009 I5083=$00000A I5084=$00000B I5085=$00000C I5086=$00000D I5087=$00000E I5088=$00000F $78B40 $78B40 $78B40 $78B40 $78B40 $78B40 $78B40 $78B40 25 $078800+$000340= $078800+$000340= $078800+$000340= $078800+$000340= $078800+$000340= $078800+$000340= $078800+$000340= $078800+$000340= 8 to to to to to to to to 9 8 ADC pairs is referenced is referenced is referenced is referenced is referenced is referenced is referenced is referenced 10 Copy ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 11 ; ; ; ; ; ; ; ; ; 12 I5060=8 I5061=$000340 I5062=$000340 I5063=$000340 I5064=$000340 I5065=$000340 I5066=$000340 I5067=$000340 I5068=$000340 20 7 19 6 18 5 Each input has a 470Ω input resistor inline, and a 0.01 μF resistor to ground ensuing a 4.7 μsec time constant per input line. ADC1 4 These analog inputs can be used either in unipolar mode in the 0V to +10V range, or bipolar mode in the -10V to +10V range. AGND 1 ±10VDC Input Signals J9 port provides eight multiplexed 12-bit single-ended analog inputs using the traditional PMAC Option 12. A SAVE and a reset ($$$) is required to initialize this function properly after download. Note In Unipolar mode, the ADCs can measure up to 12V since the opamps are powered with 12VDC. Note PinOuts and Software Setup 39 Geo Brick LV User Manual J9 Analog Inputs Suggested M-Variables Bipolar Mode (Signed) M6991->Y:$003400,12,12,S M6992->Y:$003402,12,12,S M6993->Y:$003404,12,12,S M6994->Y:$003406,12,12,S M6995->Y:$003408,12,12,S M6996->Y:$00340A,12,12,S M6997->Y:$00340C,12,12,S M6998->Y:$00340E,12,12,S ; ; ; ; ; ; ; ; Unipolar Mode (Unsigned) ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 M6991->Y:$003400,12,12,U M6992->Y:$003402,12,12,U M6993->Y:$003404,12,12,U M6994->Y:$003406,12,12,U M6995->Y:$003408,12,12,U M6996->Y:$00340A,12,12,U M6997->Y:$00340C,12,12,U M6998->Y:$00340E,12,12,U ; ; ; ; ; ; ; ; ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 Testing The J9 Analog Inputs Input Voltage Software Counts -10 -2048 -5 -1024 0 0 Bipolar +10 +2048 Unipolar +5 +1024 PinOuts and Software Setup 40 1 2 14 14 1 15 15 2 16 4 Single-Ended Output DAC Output ±10VDC 20 7 Analog DAC Device COM 9 9 21 21 8 8 20 DAC Output ±10VDC 7 Analog DAC+ Device DAC- 19 6 6 18 18 5 5 17 17 4 Differential Output 16 3 3 Setting up the Analog Output (J9) 19 Geo Brick LV User Manual 23 23 10 10 22 22 The analog output out of J9 is a (12-bit) filtered PWM signal, therefore a PWM frequency in the range of 30-40 KHz and a PWM deadtime of zero are suggested for a good quality analog output signal (minimum ripple). A fully populated Brick can have one of three gates generating the clocks: 13 13 25 25 12 12 24 24 11 11 Servo IC 0 Servo IC 1 MACRO IC 0 I19 specifies which gate is the clock source master. I19 is equal to 7007 by default indicating that Servo IC 0 is the master gate. However, the analog output on J9 is generated from MACRO IC 0. The relationship between the PWM clock frequency of the clock-receiving gate and the clock-generating gate should always be respected in such a way that: Where n is an integer Example: With Servo IC 0 sourcing the clock at its’ recommended settings (20 KHz PWM), the following are suggested MACRO IC 0 clock settings which would provide a good analog output signal: Servo IC 0 Clock Settings Resulting Frequencies KHz I7000=1473 I7001=0 I7002=7 I10=1677653 PWM PHASE SERVO Note MACRO IC 0 Clock Settings I6800=735 I6801=3 I6802=3 I6804=0 Note that n=2 in this case 20 40 5 Resulting Frequencies KHz PWM PHASE SERVO PWMDeadtime 40 20 5 0 These MACRO IC0 Clock settings are optimized for a good Analog Output signal. If the Brick is a MACRO Ring Controller then the analog output signal quality is compromised with a much lower PWM frequency, or should not be used at all. PinOuts and Software Setup 41 Geo Brick LV User Manual For Help with clock calculations, download the Delta Tau Calculator: DT Calculator Forum Link J9 Analog Output Suggested M-Variable // I/O 10 & 11 Mode (PWM) M7051->Y:$78404,10,1 M7052->Y:$78404,11,1 M7051=0 ; =0 PWM, =1 PFM M7052=0 ; =0 PWM, =1 PFM // Analog Output M-variable M7050->Y:$78412,8,16,S // These I/O nodes have to be setup once on power-up. // power-up PLC Example Open PLC 1 clear I6612=100*8388608/I10 While(I6612>0) Endw M7051=0 ; PWM mode M7052=0 ; PWM mode Disable PLC 1 Close Testing the J9 Analog Output With I6800=735, writing directly to the assigned M-variable (i.e. M7050) should produce the following: M7050 -735 -368 0 368 735 Note Single-Ended: Differential: Gnd Output+ Output+ Output-10V -20V -5V -10V 0V 0V +5V +10V +10V +20V Writing values greater than I6800 (i.e. 735) in M7050 will saturate the output to 10, or 20 volts in single-ended or differential mode respectively MACRO connectivity provides more analog output options, e.g. ACC24M2A. Note PinOuts and Software Setup 42 15 3 15 4 16 16 3 17 4 5 Single Ended Pulse And Direction 20 PULSE+ 21 DIR+ COM 22 25 24 12 11 24 23 11 10 23 22 10 9 21 8 PULSE FREQUENCY PULSEDEVICE/ DIR+ AMPLIFIER DIR- PULSE FREQUENCY DEVICE/ AMPLIFIER 8 PULSE+ 9 20 7 7 19 6 19 6 18 5 Differential Pulse And Direction 17 Setting up Pulse and Direction Output PFM (J9) 18 Geo Brick LV User Manual 13 25 13 12 Using the Delta Tau Calculator or referring to the Turbo Software Reference Manual, the desired maximum PFM Frequency and pulse width can be chosen. DT Calculator Forum Link Step2 Step1 Results Step 1: Choose Max PFM clock by changing the PFM clock divider. Click on calculate to see results. Step 2: Choose PFM Pulse width by changing I6804. Click on calculate to see results. For a PFM clock range 0-20 KHz, and a pulse width of ~20 μsec: I6803=2290 I6804=13 ; PFM Clock divider equal to 6 ; PFM Pulse Width Control equal to 13 PinOuts and Software Setup 43 Geo Brick LV User Manual The output frequency control Ixx69 specifies the maximum command output value that corresponds to the maximum PFM Frequency. I6826=3 ; MACRO IC Channel2 Output Mode Select. C PFM M8000->Y:$7841C,8,16,S ; Supplementary Channel 2* Output C Command Value ; Min=0, Max= Calculated Ixx69 M8001->X:$7841D,21 ; Invert C Output Control. 0=no inversion, 1=invert Testing the J9 PFM Output Writing, directly to the suggested M-variable (i.e. M8000), values proportional to the calculated Ixx69, produces the following corresponding frequencies: M8000 PFM [KHz] 0 0 1213 11 2427 22 PinOuts and Software Setup 44 2 14 14 1 3 15 15 2 4 4 16 16 3 Geo Brick LV User Manual 5 17 17 Setting up the Handwheel Port (J9) 20 +5V External +5V COM Power Supply 21 23 10 24 CHB+ 11 Quadrature Encoder CHC+ 25 +5V PWR 12 CHB- 13 CHC- 13 CHC+ GND 24 CHB+ 25 Quadrature Encoder 12 GND 11 CHA+5V PWR CHA+ 23 CHA+ 10 22 22 9 9 21 8 +5V External +5V COM Power Supply 8 20 7 7 19 19 6 6 18 18 5 A quadrature encoder type device is normally brought into the handwheel port; it can be wired and used in either single-ended or differential mode. The encoder power is not provided for this device, it must be brought in externally. Differential Handwheel Single ended Handwheel The encoder data can be brought into the Encoder Conversion Table allowing direct access with an Mvariable or used as a master position (Ixx05) for a specific motor. Example: I8000=$78410 ; ECT Entry 1: 1/T extension of location $78410 M8000->X:$3501,0,24,S ; ECT 1st entry result PinOuts and Software Setup 45 Geo Brick LV User Manual X1-X8: Encoder Feedback, Digital A Quad B 8 X1-X8: D-sub DA-15F Mating: D-sub DA-15M 7 15 6 14 5 13 4 12 3 11 2 10 1 9 Pin# Symbol Function Description 1 CHA+ Input Encoder A+ 2 CHB+ Input Encoder B+ 3 CHC+ / AENA+ Input Encoder Index+ / Stepper amp enable + 4 ENCPWR Output Encoder Power 5V 5 CHU+ / DIR+ In/Out Halls U+ / Direction Output + for Stepper 6 CHW+/ PUL+ In/Out Halls W+ / Pulse Output + for Stepper 7 2.5V Output 2.5V Reference power 8 Stepper Enable Input Tie to pin#4 (5V) to enable PFM output 9 CHA- Input Encoder A- 10 CHB- Input Encoder B- 11 CHC- / AENA- Input Encoder Index- / Stepper amp enable - 12 GND Common 13 CHV+ / DIR- In/Out Halls V+ / Direction Output- for Stepper 14 CHT+ / PUL- In/Out Halls T+ / Pulse Output- for Stepper 15 - - Common ground Unused Use an encoder cable with high quality shield. Connect the shield to connector shell, and use ferrite core in noise sensitive environments. Note The standard encoder inputs on the Geo Brick LV are designed for differential quadrature type signals. Quadrature encoders provide two digital signals to determine the position of the motor. Each nominally with 50% duty cycle, and nominally 1/4 cycle apart. This format provides four distinct states per cycle of the signal, or per line of the encoder. The phase difference of the two signals permits the decoding electronics to discern the direction of travel, which would not be possible with a single signal. PinOuts and Software Setup 46 Geo Brick LV User Manual Channel A Channel B Typically, these signals are 5V TTL/CMOS level whether they are single-ended or differential. Differential signals can enhance noise immunity by providing common mode noise rejection. Modern design standards virtually mandate their use in industrial systems. Differential Quadrature Encoder Wiring Single-Ended Quadrature Encoder Wiring Encoder shield (solder to shell) 9 10 11 12 13 5 6 W+ 14 T+ 15 Differential Quadrature Encoder with hall sensors (optional) C+ + 5VDC GND U+ V+ W+ T+ Single-Ended Quadrature Encoder with hall sensors (optional) 8 14 U+ 8 15 4 + 5VDC 12 5 6 7 3 C- V+ B+ 2 BC+ 13 4 11 3 10 2 B+ GND A+ 1 A- 7 9 1 A+ Encoder shield (solder to shell) Note Note For single-ended encoders, tie the negative pins to power reference (Pin#7). Alternately, some open collector single ended encoders may require tying the negative pins to ground in series with a 1-2 KOhm resistors. Some motor manufacturers bundle the hall sensors with the motorlead cable. The hall sensors must be brought into this connector for setup simplicity. PinOuts and Software Setup 47 Geo Brick LV User Manual Setting up Quadrature Encoders Digital Quadrature Encoders use the 1/T incremental entry in the encoder conversion table. Position and velocity pointers should, by default, be valid and in most cases no software setup is required, activating (Ixx00=1) the corresponding channel is sufficient to see encoder counts in the position window when the motor/encoder shaft is moved by hand. I100,8,100=1 ; Channels 1-8 activated Encoder Count Error (Mxx18) The Geo Brick LV has an encoder count error detection feature. If both the A and B channels of the quadrature encoder change state at the decode circuitry (post-filter) in the same hardware sampling clock (SCLK) cycle, an unrecoverable error to the counter value will result (lost counts). Suggested M-Variable Mxx18 for this channel is then set and latched to 1 (until reset or cleared). The three most common root causes of this error: Real encoder hardware problem Trying to move the encoder (motor) faster than it’s specification Using an extremely high resolution/speed encoder. This may require increasing the SCLK The default sampling clock in the Geo Brick LV is ~ 10MHz, which is acceptable for virtually all applications. A setting of I7m03 of 2257 (from default of 2258) sets the sampling clock SCLK at about ~20MHz. It can be increased to up to ~40 MHz. No automatic action is taken by the Geo Brick LV if the encoder count error bit is set. Note PinOuts and Software Setup 48 Geo Brick LV User Manual Encoder Loss Detection, Quadrature Designed for use with differential line-driver outputs (encoders), the encoder loss circuitry monitors each quadrature input pair with an exclusive-or XOR gate. In normal operation mode, the two quadrature inputs should be in opposite logical states – that is one high and one low – yielding a true output from the XOR gate. Single-Ended Quadrature Encoders are not supported for encoder loss. Note Ch# 1 2 3 4 Address/Definition Y:$78807,0,1 Y:$78807,1,1 Y:$78807,2,1 Y:$78807,3,1 ! Caution Ch# 5 6 7 8 Address/Definition Y:$78807,4,1 Y:$78807,5,1 Y:$78807,6,1 Y:$78807,7,1 Status Bit Definition =0 Encoder lost, Fault =1 Encoder present, no Fault Appropriate action (user-written plc) needs to be implemented when an encoder loss is encountered. To avoid a runaway, an immediate Kill of the motor/encoder in question is strongly advised. No automatic firmware (Geo Brick) action is taken upon detection of encoder(s) loss; it is the user’s responsibility to perform the necessary action to make the application safe under these conditions, see example PLC below. Killing the motor/encoder in question is the safest action possible, and strongly recommended to avoid a runaway, and machine damage. Also, the user should decide the action to be taken (if any) for the other motors in the system. The Encoder Loss Status bit is a low true logic. It is set to 1 under normal conditions, and set to 0 when a fault (encoder loss) is encountered. PinOuts and Software Setup 49 Geo Brick LV User Manual Encoder Loss Example PLC: A 4-axis Geo Brick is setup to kill all motors upon the detection of one or more encoder loss. In addition, it does not allow enabling any of the motors when an encoder loss condition has been encountered: #define Mtr1AmpEna Mtr1AmpEna->X:$B0,19 #define Mtr2AmpEna Mtr2AmpEna->X:$130,19 #define Mtr3AmpEna Mtr3AmpEna->X:$1B0,19 #define Mtr4AmpEna Mtr4AmpEna->X:$230,19 M139 #define Mtr1EncLoss Mtr1EncLoss->Y:$078807,0,1 #define Mtr2EncLoss Mtr2EncLoss->Y:$078807,1,1 #define Mtr3EncLoss Mtr3EncLoss->Y:$078807,2,1 #define Mtr4EncLoss Mtr4EncLoss->Y:$078807,3,1 M180 #define SysEncLoss SysEncLoss=0 P1080 M239 M339 M439 M280 M380 M480 ; ; ; ; ; ; ; ; Motor#1 Amplifier Enable Suggested M-Variable Motor#2 Amplifier Enable Suggested M-Variable Motor#3 Amplifier Enable Suggested M-Variable Motor#4 Amplifier Enable Suggested M-Variable Status Bit ; ; ; ; ; ; ; ; Motor#1 Encoder Loss Status Bit Status Bit Status Bit Status Bit Motor#2 Encoder Loss Status Bit Motor#3 Encoder Loss Status Bit Motor#4 Encoder Loss Status Bit ; System Global Encoder Loss Status (user defined) ; Save and Set to 0 at download, normal operation ; =1 System Encoder Loss Occurred OPEN PLC 1 CLEAR If (SysEncLoss=0) ; No Loss yet, normal mode If (Mtr1EncLoss=0 or Mtr2EncLoss=0 or Mtr4EncLoss=0 or Mtr4EncLoss=0) CMD^K ; One or more Encoder Loss(es) detected, kill all motors SysEncLoss=1 ; Set Global Encoder Loss Status to Fault EndIf EndIF If (SysEncLoss=1) ; Global Encoder Loss Status At Fault? If (Mtr1AmpEna=1 or Mtr2AmpEna=1 or Mtr4AmpEna=1 or Mtr4AmpEna=1) ; Trying to Enable Motors? CMD^K ; Do not allow Enabling Motors, Kill all EndIF EndIF CLOSE PinOuts and Software Setup 50 Geo Brick LV User Manual Step and Direction PFM Output (To External Stepper Amplifier) The Geo Brick LV has the capability of generating step and direction (Pulse Frequency Modulation) output signals to external stepper amplifiers. These signals are accessible at the encoder connectors. The step and direction outputs are RS422 compatible and could be connected in either differential or singleended configuration for 5V (input signal) amplifiers. Tying pin #8 to pin #4 (+5V) enables the PFM signal output. Digital A quad B encoders can still be used alongside PFM output, but hall sensors can NOT be brought into this connector, they conflict with the PFM circuitry. The PFM amplifier enable output signal is not available by default. Jumpers E25, E26, E27, and E28 should be installed to activate the amp enable functions of channels 1 through 4 respectively. Similarly jumpers E35, E36, E37, and E38 should be installed to activate the amp enable functions of channels 5 through 8 respectively. We strongly recommend requesting that these jumpers be installed upon shipping to avoid opening the unit and losing warranty. Note The index channel (C-channel) can NOT be wired into this connector when the amplifier enable output signal is configured. PFM output with encoder feedback PFM output without encoder feedback Encoder shield (solder to shell) 1 9 2 10 PUL- 12 13 PULSE- 14 PUL+ DIRPULSE+ 15 DIR- DIR+ 5 DIR+ DIGITAL GND 6 GND 8 8 PinOuts and Software Setup +5V PFM enable AENA- 11 AENA- 3 AENA+ 4 AENA+ 15 External Stepper Amplifier 11 12 PULSE- 7 PUL- GND PFM enable PUL+ DIRPULSE+ 13 DIR- DIR+ 14 DIR+ DIGITAL GND + 5VDC 5 GND B- 3 4 AENA- AENA- 10 2 B+ 6 External Stepper Amplifier AENA+ AENA+ A- 7 9 1 A+ 51 Geo Brick LV User Manual The stepper drive specifications dictate the choice of the maximum PFM clock frequency, and pulse width. DT Calculator Forum Link Step 1: Choose Max PFM clock by changing the PFM clock divider. Click on calculate to see results. Step 2: Choose PFM Pulse width by changing I7m04. Click on calculate to see results. The output frequency control Ixx69 specifies the maximum command output value which corresponds to the maximum PFM Frequency. Example: Channels 5-8 are driving 4 stepper drives-motors, and require a PFM clock range of 0-20 KHz and a pulse width of ~20 μsec. PFM Clock Settings Example // Channels 5-8 PFM Clock Settings I7103=2290 ; Servo IC 1 PFM Clock divider equal to 6 I7104=13 ; Servo IC 1 PFM Pulse Width Control equal to 13 I569,4,100=2427 ; Output Command Limit The following example assumes that there is no encoder attached to the motor, and the feedback is internally generated. Note PinOuts and Software Setup 52 Geo Brick LV User Manual Ch. 5-8 PFM Setup Example // Encoder Conversion Table, for channels 5-8 I8004=$C78100 ; Entry 5 incremental encoder, no extension I8005=$C78108 ; Entry 6 incremental encoder, no extension I8006=$C78110 ; Entry 7 incremental encoder, no extension I8007=$C78118 ; Entry 8 incremental encoder, no extension // Channels 5-8 Output Mode Select, Encoder/Decode I7116,4,10=3 ; Servo IC 1, Channels 5-8 Output Mode Select to PFM I7110,4,10=8 ; Servo IC 1, Channels 5-8 Encoder Decode, Internal Pulse and Direction // Channels 5-8 Command Output Register I502=$78104 ; Channel 5, PFM I602=$7810C ; Channel 6, PFM I702=$78114 ; Channel 7, PFM I802=$7811C ; Channel 8, PFM In PFM mode, it is possible to: Write directly to the PFM output register using the suggested M-Variable definition (Mxx07) The corresponding channel has to be deactivated in this mode (Ixx00=0) Issue open loop commands to a channel/motor, e.g.:#5O5 The corresponding channel has to be activated in this mode (Ixx00=1) Issue closed loop commands to a channel/motor, e.g.: #5J=1000 The corresponding channel has to be activated (Ixx00=1) and the position loop PID gains have to be implemented. Writing directly to the PFM register // Channels 5-8 Suggested M-Variables, PFM M507->Y:$78104,8,16,S ; Channel 5, Min=0, M607->Y:$7810C,8,16,S ; Channel 6, Min=0, M707->Y:$78114,8,16,S ; Channel 7, Min=0, M807->Y:$7811C,8,16,S ; Channel 8, Min=0, command output Max= Calculated Max= Calculated Max= Calculated Max= Calculated I569 I669 I769 I869 Writing directly to the suggested M-variable(s) values proportional to Ixx69 produces corresponding frequencies: Suggested MVariable Output Frequency PFM [KHz] 0 0 1213 11 2427 22 Issuing Open-Loop Commands Activating the motor channel should be sufficient at this point to allow open loop commands. Note that an open loop command of zero magnitude (#nO0) will result in a zero frequency output, and an open loop command of 100 (#nO100) will result in the maximum calculated frequency output. I500,4,100=1 ; Channels 5-8 active Going back to the setup example, these are some open loop commands resulting frequencies: PinOuts and Software Setup Open Loop Command Output Frequency PFM [KHz] 0 0 50 11 100 22 53 Geo Brick LV User Manual Issuing Closed-Loop Commands Issuing closed-loop commands requires activating the channel, setting the flag control, assigning the position and velocity pointers, and implementing PID gains. Activating channels, Ixx00 I500,4,100=1 ; Channels 5-8 active Assigning position and velocity pointers, Ixx03 and Ixx04 I503=$3505 I603=$3506 I703=$3507 I803=$3508 I504=$3505 I604=$3506 I704=$3507 I804=$3508 ; ; ; ; Channel Channel Channel Channel 5 6 7 8 position position position position and and and and velocity velocity velocity velocity pointers pointers pointers pointers Flag Control, Ixx24 The following diagram showcases important bit settings pertaining to flags, and amplifier information: Amplifier Fault Use Bit Amplifier Enable Use Bit Flag Register Type = 0 Enable amp fault input = 1 Disable amp fault input = 0 Use amp enable output = 1 Don’t use amp enable Always =1 for Brick Controller (Turbo PMAC) Bit #: 23 22 21 20 19 18 17 16 15 14 13 12 11 10 Amplifier Fault Polarity Bit Overtravel Limit Use Bit = 0 For low true amp = 1 For high true amp = 0 Enable hardware over-travel limits = 1 Disable hardware over-travel limits 9 8 7 6 5 4 3 2 1 0 Example: Setting Ixx24 for a low true amplifier, disabling the over-travel limits and amplifier fault input yields $120001. PinOuts and Software Setup 54 Geo Brick LV User Manual Implementing PID gains, Ixx30…Ixx35 In PFM mode, the PID Gains can be determined using the following empirical equations: Ixx30 660000 Ixx08 PFM CLock [MHz] Ixx31 0 Ixx32 6660 Servo Freq. [KHz] Ixx33..Ixx35 0 // Channels 5-8 PID Gains (with I530,4,100=11190 ; Motors I531,4,100=0 ; Motors I532,4,100=15038 ; Motors I533,4,100=0 ; Motors I534,4,100=0 ; Motors I535,4,100=0 ; Motors default clock settings): 5-8 Proportional Gain 5-8 Derivative Gain 5-8 Velocity FeedForward Gain 5-8 Integral Gain 5-8 Integral Mode 5-8 Acceleration FeedForward Gain At this point of the setup, the drive-motor(s) is ready to accept Jog commands. Note PinOuts and Software Setup 55 Geo Brick LV User Manual X1-X8: Encoder Feedback, Sinusoidal 8 X1-X8: D-sub DA-15F Mating: D-sub DA-15M 7 15 6 14 5 13 Pin # Symbol Function Notes 1 Sin+ Input Sine+ 2 Cos+ Input Cosine+ 3 CHC+ Input Index+ 4 EncPwr Output Encoder Power 5 Volts 5 CHU+ In/Out U Hall 6 CHW+ In/Out W Hall 7 2.5 Volts Output Reference Power 2.5 volts 8 4 12 3 11 2 10 1 9 Unused 9 Sin- Input Sine- 10 Cos- Input Cosine- 11 CHC- Input Index- 12 GND Common 13 CHV+ In/Out V Hall 14 CHT+ In/Out T Hall 15 Common Ground Unused This option allows the Geo Brick LV to interface directly to up to eight sinusoidal feedback devices. The high resolution interpolator circuitry accepts inputs from sinusoidal or quasi-sinusoidal encoders (1-Volt peak to peak) and provides encoder position data. It creates 4,096 steps per sine-wave cycle. PinOuts and Software Setup 56 Geo Brick LV User Manual Setting up Sinusoidal Encoders The Sinusoidal position feedback is set up through the Encoder Conversion Table (ECT) as a high resolution interpolation entry. Encoder Conversion Table Setup Example, Channel 1 1. 2. 3. 4. Channel # 1 2 3 4 Conversion Type: High res. interpolator, PMAC2 Style Enter Source Address (see table below) Enter A/D Converter Address (see table below) A/D Bias: always zero Source Address $78000 $78008 $78010 $78018 A/D converter Address $78B00 $78B02 $78B04 $78B06 Channel # 5 6 7 8 Source A/D converter Address Address $78100 $78B08 $78108 $78B0A $78110 $78B0C $78118 $78B0E Results are found in the processed data address, which the position and velocity feedback pointers (Ixx03, Ixx04) are usually assigned to. Note PinOuts and Software Setup 57 Geo Brick LV User Manual The equivalent Turbo PMAC script code for 8-channel entries // Channel 1 I8000=$FF8000 I8001=$078B00 I8002=$000000 // Channel 2 I8003=$FF8008 I8004=$078B02 I8005=$000000 // Channel 3 I8006=$FF8010 I8007=$078B04 I8008=$000000 // Channel 4 I8009=$FF8018 I8010=$078B06 I8011=$000000 // Channel 5 I8012=$FF8100 I8013=$078B08 I8014=$000000 // Channel 6 I8015=$FF8108 I8016=$078B0A I8017=$000000 // Channel 7 I8018=$FF8110 I8019=$078B0C I8020=$000000 // Channel 8 I8021=$FF8118 I8022=$078B0E I8023=$000000 ; High resolution interpolator ; A/D converter address ; Bias Term and Entry result ; High resolution interpolator ; A/D converter address ; Bias Term and Entry result ; High resolution interpolator ; A/D converter address ; Bias Term and Entry result ; High resolution interpolator ; A/D converter address ; Bias Term and Entry result ; High resolution interpolator ; A/D converter address ; Bias Term and Entry result ; High resolution interpolator ; A/D converter address ; Bias Term and Entry result ; High resolution interpolator ; A/D converter address ; Bias Term and Entry result ; High resolution interpolator ; A/D converter address ; Bias Term and Entry result Position and Velocity feedback pointers should now be set to the corresponding ECT result: I103=$3503 I203=$3506 I303=$3509 I403=$350C I503=$350F I603=$3512 I703=$3515 I803=$3518 I104=$3503 I204=$3506 I304=$3509 I404=$350C I504=$350F I604=$3512 I704=$3515 I804=$3518 Note At this point of the setup, you should be able to move the motor/encoder shaft by hand and see ‘motor’ counts in the position window. Counts per User Units With the interpolation of x 4096 in Turbo PMAC, there are 128 (4096/32) motor counts per sine/cosine cycles. Motor counts can be monitored in the motor position window upon moving the motor by hand. Examples: A 1024 Sine/Cosine periods per revolution of a rotary encoder produces 1024 x 128 = 131,072 cts/rev. A 20 μm linear encoder resolution produces 128/0.02 = 6400 cts/mm. PinOuts and Software Setup 58 Geo Brick LV User Manual Encoder Count Error (Mxx18) The Geo Brick LV has an encoder count error detection feature. If both the A and B channels of the quadrature encoder change state at the decode circuitry (post-filter) in the same hardware sampling clock (SCLK) cycle, an unrecoverable error to the counter value will result (lost counts). Suggested M-Variable Mxx18 for this channel is then set and latched to 1 (until reset or cleared). The three most common root causes of this error: Real encoder hardware problem Trying to move the encoder (motor) faster than it’s specification Using an extremely high resolution/speed encoder. This may require increasing the SCLK The default sampling clock in the Geo Brick LV is ~ 10MHz, which is acceptable for virtually all applications. A setting of I7m03 of 2257 (from default of 2258) sets the sampling clock SCLK at about ~20MHz. It can be increased to up to ~40 MHz. No automatic action is taken by the Geo Brick LV if the encoder count error bit is set. Note PinOuts and Software Setup 59 Geo Brick LV User Manual Encoder Loss Detection, Sinusoidal Encoder loss detection with Sinusoidal encoders can be performed using the encoder conversion table. The ECT can be set up to compute the sum of the squares of the sine and cosine terms (including user introduced biases). Using channel #1, the encoder conversion table (5-line entry) for computing the sum of the squares would look like: I8024 I8025 I8026 I8027 I8028 = = = = = $F78B00 $100000 $0 $0 $0 ; ; ; ; ; Diagnostic entry for sinusoidal encoder(s) Bit 0 is 0 to compute sum of the squares Active Sine/Cosine Bias Corrections Sum of the squares result The result (@ $351D for example) corresponds to: (SineADC + SineBias)2 + (CosineADC + CosineBias)2 This term can be monitored to check for loss of the encoder. If the inputs are no longer driven externally, for example because the cable has come undone, the positive and negative input pair to the ADC will pull to substantially the same voltage, and the output of the ADC will be a very small number, resulting in a small magnitude of the sum of squares in at least part of the cycle. (If both signals cease to be driven externally, the sum of squares will be small over the entire cycle). The high four bits (bits 20 – 23) of the sum-of-squares result can be monitored, and if the four-bit value goes to 0, it can be concluded that the encoder has been “lost”, and the motor should be “killed”. The 4-bit value can be obtained as follows: #define Mtr1EncLoss M180 Mtr1EncLoss->X:$351D,20,4 ! Caution ; Motor#1 Encoder Loss Status ; Upper 4 bits of the sum of the squares Appropriate action (user-written plc) needs to be implemented when an encoder loss is encountered. To avoid a runaway, an immediate Kill of the motor/encoder in question is strongly advised. No automatic firmware (Geo Brick) action is taken upon detection of encoder(s) loss; it is the user’s responsibility to perform the necessary action to make the application safe under these conditions. Killing the motor/encoder in question is the safest action possible, and strongly recommended to avoid a runaway, and machine damage. Also, the user should decide the action to be taken (if any) for the other motors in the system. PinOuts and Software Setup 60 Geo Brick LV User Manual X1-X8: Encoder Feedback, Resolver 8 X1-X8: D-sub DA-15F Mating: D-sub DA-15M 15 Pin # Symbol Function Notes 1 Sin+ Input Sine+ 2 Cos+ Input Cosine+ 3 CHC+ Input Index+ 4 EncPwr Output Unused 6 Unused 2.5 Volts Output 8 14 5 13 4 12 3 11 2 10 1 9 Reference Power 2.5 volts Unused 9 Sin- Input Sine- 10 Cos- Input Cosine- 11 CHC- Input Index- 12 GND Common Common Ground 13 Unused 14 Unused 15 6 Encoder Power 5 Volts 5 7 7 ResOut Output Resolver Excitation Output This option allows the Brick to connect to up to eight Resolver feedback devices. Setting up Resolvers The Resolver data sampling is done at phase rate, and processed in the encoder conversion table. The commutation (occurring at phase rate) position is retrieved from the Encoder Conversion Table which is normally read at Servo rate. Thus, the Servo and Phase cycles have to be at the same rate. Note PinOuts and Software Setup Use an encoder cable with high quality shield. Connect the shield to chassis ground, and use ferrite core in noise sensitive environment if deemed necessary. It is essential to set the Servo clock the same as the Phase Clock in Resolver applications. This will greatly reduce noise. The Servo Cycle Extension Period (Ixx60) can be used to lower the CPU load and avoid quantization errors through the PID loop at high Servo rates. 61 Geo Brick LV User Manual Resolver Excitation Magnitude Revolvers’ excitation magnitude is a global setting used for all available Resolver channels. It has 15 possible settings: #define ResExcMag M8000 ResExcMag->Y:$78B11,0,4 ; Resolver Excitation Magnitude MACRO definition ; Resolver Excitation Magnitude register Excitation Peak-Peak Magnitude [Volts] 1 1.6 2 2.5 3 3.3 4 4.2 5 5.0 6 6.0 7 6.9 8 7.7 Excitation Peak-Peak Magnitude [Volts] 9 8.5 10 9.5 11 10.4 12 11.3 13 12 14 13 15 14 Resolver Excitation Frequency The Resolvers’ excitation frequency is divided from the Phase clock and is setup to be the same as but not greater than the Resolvers’ excitation frequency specification. The Resolver excitation frequency is a global setting used for all available Resolver channels, it has 4 possible settings: #define ResExcFreq M8001 ResExcFreq->Y:$78B13,0,4 ; Resolver Excitation Frequency MACRO definition ; Resolver Excitation Frequency register Setting 0 1 2 3 Excitation Frequency Phase Clock/1 Phase Clock/2 Phase Clock/4 Phase Clock/6 The Resolver Excitation Magnitude and Frequency need to be executed once on power-up. Note PinOuts and Software Setup 62 Geo Brick LV User Manual Resolver Data Registers The Resolver raw data is found in the Resolver Data registers Channel 1 2 3 4 Register Y:$78B00 Y:$78B02 Y:$78B04 Y:$78B06 Channel 5 6 7 8 Register Y:$78B08 Y:$78B0A Y:$78B0C Y:$78B0E Encoder Conversion Table Processing A dedicated 3-line Encoder Conversion Table entry is used for Resolver feedback. Due to the noisy nature of Resolvers, implementing a tracking filter to the result is highly recommended. The Pewin32Pro2 software provides with an automatic encoder conversion table utility that can be used to implement both the Resolver entry and Tracking Filter. Under Configure>Encoder Conversion Table: Channel 1 Resolver Setup Example Resolver Entry Tracking Filter Steps: 1. Choose Resolver from Conversion Type pull-down menu. 2. Enter Source Address. See Resolver Data Registers table above. 3. Enter Excitation Address $4 Source address+$10 4. Download Entry. 5. Record Processed Data Address $3503 for channel 1. PinOuts and Software Setup 6. Move up to the next Entry 7. Choose Tracking from Conversion Type pull-down menu. 8. Enter Source address. This is the result recorded in step5. 9. Download Entry 10. Record Processed Data Address. This is the source for position Ixx03 and velocity Ixx04 feedback pointers. 63 Geo Brick LV User Manual Calculating the Tracking Filter Gains The tracking filter gains are system dependent, and need to be fine-tuned. This can be done by gathering and plotting filtered versus unfiltered data while moving the motor shaft manually. Best case scenario is super-imposing the filtered data on top of the unfiltered with minimum ripple and overshoot. The empirical equations for the filter’s proportional and integral gains (usually acceptable most applications) present a good starting point: Ff: Filter Frequency (Hz) Sf: Servo Frequency (Hz) ( ) ( ) Motors 1-8 Resolver Encoder Conversion Table Setup Example // Channel 1 I8000= $F78B00 I8001= $478B10 I8002= $000000 I8003=$D83503 I8004=$400 I8005=$80000 I8006=$0 I8007=$1 // Channel 2 I8008=$F78B02 I8009=$478B10 I8010=$000000 I8011=$D8350B I8012=$400 I8013=$80000 I8014=$0 I8015=$1 // Channel 3 I8016=$F78B04 I8017=$478B10 I8018=$000000 I8019=$D83513 I8020=$400 I8021=$80000 I8022=$0 I8023=$1 // Channel 4 I8024=$F78B06 I8025=$478B10 I8026=$000000 I8027=$D8351B I8028=$400 I8029=$80000 I8030=$0 I8031=$1 // Channel 5 I8032=$F78B08 I8033=$478B10 I8034=$000000 I8035=$D83523 I8036=$400 I8037=$80000 I8038=$0 I8039=$1 // Channel 6 I8040=$F78B0A I8041=$478B10 ; ; ; ; ; ; ; ; Resolver Counter Clockwise Excitation address SIN/COS Bias word Tracking filter from conversion location $3503 Maximum change in counts/cycle Proportional gain Reserved setup word Integral gain ; ; ; ; ; ; ; ; Resolver Counter Clockwise Excitation address SIN/COS Bias word Tracking filter from conversion location $350B Maximum change in counts/cycle Proportional gain Reserved setup word Integral gain ; ; ; ; ; ; ; ; Resolver Counter Clockwise Excitation address SIN/COS Bias word Tracking filter from conversion location $3513 Maximum change in counts/cycle Proportional gain Reserved setup word Integral gain ; ; ; ; ; ; ; ; Resolver Counter Clockwise Excitation address SIN/COS Bias word Tracking filter from conversion location $351B Maximum change in counts/cycle Proportional gain Reserved setup word Integral gain ; ; ; ; ; ; ; ; Resolver Counter Clockwise Excitation address SIN/COS Bias word Tracking filter from conversion location $3523 Maximum change in counts/cycle Proportional gain Reserved setup word Integral gain ; Resolver Counter Clockwise ; Excitation address PinOuts and Software Setup 64 Geo Brick LV User Manual I8042=$000000 ; I8043=$D8352B ; I8044=$400 ; I8045=$80000 ; I8046=$0 ; I8047=$1 ; // Channel 7 I8048=$F78B0C ; I8049=$478B10 ; I8050=$000000 ; I8051=$D83533 ; I8052=$400 ; I8053=$80000 ; I8054=$0 ; I8055=$1 ; // Channel 8 I8056=$F78B0E ; I8057=$478B10 ; I8058=$000000 ; I8059=$D8353B ; I8060=$400 ; I8061=$80000 ; I8062=$0 ; I8063=$1 ; // End Of Table I8064=$000000 ; SIN/COS Bias word Tracking filter from conversion location $352B Maximum change in counts/cycle Proportional gain Reserved setup word Integral gain Resolver Counter Clockwise Excitation address SIN/COS Bias word Tracking filter from conversion location $3533 Maximum change in counts/cycle Proportional gain Reserved setup word Integral gain Resolver Counter Clockwise Excitation address SIN/COS Bias word Tracking filter from conversion location $353B Maximum change in counts/cycle Proportional gain Reserved setup word Integral gain End Of Table Position, Velocity Feedback Pointers I103=$3508 I203=$3510 I303=$3518 I403=$3520 I503=$3528 I603=$3530 I703=$3538 I803=$3540 I104=$3508 I204=$3510 I304=$3518 I404=$3520 I504=$3528 I604=$3530 I704=$3538 I804=$3540 Note At this point of the setup process, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window. PinOuts and Software Setup 65 Geo Brick LV User Manual Resolver Power-On PLC Example Setting up a resolver with 10V excitation magnitude and 10 KHz excitation frequency: // Clock Settings: 10KHz Phase & Servo I7100=5895 ; Servo IC1 I7101=0 I7102=0 I6800=5895 ; MACRO IC0 I6801=0 I6802=0 I7000=5895 ; Servo IC0 I7001=0 I7002=0 I10=838613 ; Servo Time Interrupt #define ResExcMag M8000 #define ResExcFreq M8001 ResExcMag->Y:$78B11,0,4 ResExcFreq->Y:$78B13,0,4 ResExcMag=11 ResExcFreq=0 ; Excitation Magnitude ; Excitation Frequency ; Excitation Magnitude register ; Excitation Frequency register ;~10 Volts –User Input ; = Phase Clock/1 =10 KHz –User Input // PLC to establish Resolver Magnitude & Frequency on power-up Open plc 1 clear ResExcMag=11 ResExcFreq=0 Disable plc 1 Close PinOuts and Software Setup 66 Geo Brick LV User Manual X1-X8: Encoder Feedback, HiperFace ! Caution The majority of HiperFace devices requires 7-12VDC power. This has to be supplied externally and NOT wired into the brick unit. Pins#4 and #12 are unused in this case, leave floating. 8 X1-X8: D-sub DA-15F Mating: D-Sub DA-15M 7 15 6 14 Pin # Symbol Function 1 Sin+ Input Sine+ signal input 2 Cos+ Input Cosine+ signal input 3 EncPwr Output 5 RS485- Input 12 3 11 2 10 1 9 Notes +5V encoder power Data- Packet 6 Unused 7 Unused 8 Unused 9 SIN- Sine- signal input 10 COS- Cosine- signal input 11 Unused GND Common 13 14 13 4 Unused 4 12 5 Common ground Unused RS485+ 15 Input Data+ Packet Unused This option allows the Brick to connect to up to eight HiperFace type feedback devices. The HiperFace on-going position (sinusoidal data) is processed by the x 4096 interpolator. The encoder conversion table is setup as a high resolution interpolator 3-line entry similarly to setting up a sinusoidal encoder. The absolute power-on position (serial data) is computed directly from the raw HiperFace serial data registers. Subsequently, a power-on phase referencing routine can be implemented. PinOuts and Software Setup 67 Geo Brick LV User Manual Setting up HiperFace On-Going Position The HiperFace on-going position is set up through the Encoder Conversion Table as a high resolution interpolation entry Encoder Conversion Table Setup Example, Channel 1 1. 2. 3. 4. Channel # 1 2 3 4 Conversion Type: High res. interpolator, PMAC2 Style Enter Source Address (see table below) Enter A/D Converter Address (see table below) A/D Bias: typically =0 Source Address $78000 $78008 $78010 $78018 A/D converter Address $78B00 $78B02 $78B04 $78B06 Channel # 5 6 7 8 Source A/D converter Address Address $78100 $78B08 $78108 $78B0A $78110 $78B0C $78118 $78B0E Results are found in the processed data address, which the position and velocity feedback pointers (Ixx03, Ixx04) are usually pointed to. Note PinOuts and Software Setup 68 Geo Brick LV User Manual And the equivalent Turbo PMAC code for setting up all 8 channels: // Channel 1 I8000=$FF8000 I8001=$078B00 I8002=$000000 // Channel 2 I8003=$FF8008 I8004=$078B02 I8005=$000000 // Channel 3 I8006=$FF8010 I8007=$078B04 I8008=$000000 // Channel 4 I8009=$FF8018 I8010=$078B06 I8011=$000000 // Channel 5 I8012=$FF8100 I8013=$078B08 I8014=$000000 // Channel 6 I8015=$FF8108 I8016=$078B0A I8017=$000000 // Channel 7 I8018=$FF8110 I8019=$078B0C I8020=$000000 // Channel 8 I8021=$FF8118 I8022=$078B0E I8023=$000000 ; High resolution interpolator entry, $78000 ; A/D converter address, $78B00 ; Bias Term and Entry result at $3503 ; High resolution interpolator entry, $78008 ; A/D converter address, $78B02 ; Bias Term and Entry result at $3506 ; High resolution interpolator entry, $78010 ; A/D converter address, $78B04 ; Bias Term and Entry result at $3509 ; High resolution interpolator entry, $78018 ; A/D converter address, $78B06 ; Bias Term and Entry result at $350C ; High resolution interpolator entry, $78100 ; A/D converter address, $78B08 ; Bias Term and Entry result at $350F ; High resolution interpolator entry, $78108 ; A/D converter address, $78B0A ; Bias Term and Entry result at $3512 ; High resolution interpolator entry, $78110 ; A/D converter address, $78B0C ; Bias Term and Entry result at $3515 ; High resolution interpolator entry, $78118 ; A/D converter address, $78B0E ; Bias Term and Entry result at $3518 Now, the position and velocity pointers are assigned to the corresponding processed data register: I103=$3503 I203=$3506 I303=$3509 I403=$350C I503=$350F I603=$3512 I703=$3515 I803=$3518 I104=$3503 I204=$3506 I304=$3509 I404=$350C I504=$350F I604=$3512 I704=$3515 I804=$3518 ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor #1 #2 #3 #4 #5 #6 #7 #8 Position Position Position Position Position Position Position Position and and and and and and and and Velocity Velocity Velocity Velocity Velocity Velocity Velocity Velocity feedback feedback feedback feedback feedback feedback feedback feedback address address address address address address address address Channel Activation I100,8,100=1 ; Motors 1-8 activated Note At this point of the setup process, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window. Counts Per Revolution: With the interpolation of x 4096 in Turbo PMAC, there are 128 (4096/32) motor counts per sine/cosine cycles. Motor counts can be monitored in the motor position window upon moving the motor by hand. Examples: A 1024 Sine/Cosine periods per revolution rotary encoder produces 1024 x 128 = 131,072 cts/rev. A 20 μm resolution linear encoder produces 128/0.02 = 6400 cts/mm. PinOuts and Software Setup 69 Geo Brick LV User Manual Setting up HiperFace Absolute Power-On Position Setting up the absolute position read with HiperFace requires the programming of two essential control registers: Global Control Registers Channel Control Registers The resulting data is found in: HiperFace Data Registers PinOuts and Software Setup 70 Geo Brick LV User Manual Global Control Registers X:$78BnF (default value: $812004) where n=2 for axes 1-4 n=3 for axes 5-8 Axes 1-4 Axes 5-8 Global Control Register X:$78B2F X:$78B3F The Global Control register is used to program the serial encoder interface clock frequency SER_Clock and configure the serial encoder interface trigger clock. SER_Clock is generated from a two-stage divider clocked at 100 MHz as follows: M N SER_Clock [KHz] Baud Rate Global Register Setting 129 2 192.30 9600 $812004 129 3 96.15 4800 $813004 129 1 394.61 19200 $812004 Default Settings: M=129, N=2 There are two external trigger sources; phase and servo. Bits [9:8] in the Global Control register are used to select the source and active edge to use as the internal serial encoder trigger. The internal trigger is used by all four channels to initiate communication with the encoder. To compensate for external system delays, this trigger has a programmable 4-bit delay setting in 20 μsec increments. 23--16 15--12 M_Divisor N_Divisor Bit 11 Type Default 10 9 8 Trigger Clock Trigger Edge Name 7 6 5 4 Trigger Delay 3 2 1 0 Protocol Code Description Intermediate clock frequency for SER_Clock. The intermediate clock is generated from a (M+1) divider clocked at 100 MHz. Final clock frequency for SER_Clock. The final clock is generated from a 2 N divider clocked by the intermediate clock. Reserved and always reads zero. = 0 Phase Clock Trigger clock select = 1 Servo Clock = 0 Rising edge Active clock edge select = 1 Falling edge Trigger delay program relative to the active edge of the trigger clock. Units are in increments of 20 usec. [23:16] R/W 0x81 M_Divisor [15:12] R/W 0x2 N_Divisor [11:10] R 00 Reserved [09] R/W 0 TriggerClock [08] R/W 0 TriggerEdge [07:04] R/W 0x0 TriggerDelay [03:00] R 0x4 ProtocolCode protocol supported by the FPGA. A value of $4 defines this This read-only bit field is used to read the serial encoder interface protocol as HiperFace. PinOuts and Software Setup 71 Geo Brick LV User Manual Channel Control Registers X:$78Bn0, X:$78Bn4, X:$78Bn8, X:$78BnC Channel 1 Channel 2 Channel 3 Channel 4 where: n=2 for axes 1-4 n=3 for axes 5-8 X:$78B20 X:$78B24 X:$78B28 X:$78B2C Channel 5 Channel 6 Channel 7 Channel 8 X:$78B30 X:$78B34 X:$78B38 X:$78B3C Each channel has its own Serial Encoder Command Control Register defining functionality parameters. Parameters such as setting the number of position bits in the serial bit stream, enabling/disabling channels through the SENC_MODE (when this bit is cleared, the serial encoder pins of that channel are tri-stated), enabling/disabling communication with the encoder using the trigger control bit. An 8-bit mode command is required for encoder communication. Currently, three HiperFace commands are supported; read encoder position ($42), read encoder status ($50) and Reset encoder($53). [23:16] [15:14] 13 12 11 10 [9:8] [7:0] Command Trigger Trigger Rxdataready Encoder Code Mode Enable SencMode Address Bit [23:16] Type Default W [15:14] Name 0x42 Command Code 0 Reserved [13] R/W 0 Trigger Mode [12] R/W 1 Trigger Enable 0 Reserved R 0 RxData Ready W 1 SENC_MODE 0x00 Reserved 0xFF Encoder address [11] [10] [09:08] [07:00] R/W PinOuts and Software Setup Description $42 – Read Encoder Position $50 – Read Encoder Status $53 – Reset Encoder Reserved and always reads zero. Trigger Mode to initiate communication: 0= continuous trigger 1= one-shot trigger - for HiperFace All triggers occur at the defined Phase/Servo clock edge and delay setting. Due to HiperFace protocol speed limitation, only one-shot trigger mode is used. 0= disabled 1= enabled This bit must be set for either trigger mode. If the Trigger Mode bit is set for one-shot mode, the hardware will automatically clear this bit after the trigger occurs. Reserved and always reads zero. This read-only bit provides the received data status. It is low while the interface logic is communicating (busy) with the serial encoder. It is high when all the data has been received and processed. This write-only bit is used to enable the output drivers for the SENC_SDO, SENC_CLK, SENC_ENA pins for each respective channel. Reserved and always reads zero. This bit field is normally used to define the encoder address transmitted with each command. Delta Tau does not support multiple encoders per channel; a value of $FF sends a general broadcast. 72 Geo Brick LV User Manual HiperFace Data Registers The HiperFace absolute power-on data is conveyed into 4 memory locations; Serial Encoder Data A, B, C, and D. The Serial Encoder Data A register holds the 24 bits of the encoder position data. If the data exceeds the 24 available bits in this register, the upper overflow bits are LSB justified and readable in the Serial Encoder Data B, which also holds status and error bits. Serial Encoder Data C, and D registers are reserved and always read zero. 23 TimeOut Error 22 CheckSum Error HiperFace Data B 21 20 [19:16] Parity Error Error Bit Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 Channel 8 [07:0] HiperFace Data A [23:0] Position Data [31:24] Position Data [23:0] HiperFace Serial Data A Y:$78B20 Y:$78B24 Y:$78B28 Y:$78B2C Y:$78B30 Y:$78B34 Y:$78B38 Y:$78B3C HiperFace Serial Data B Y:$78B21 Y:$78B25 Y:$78B29 Y:$78B2D Y:$78B31 Y:$78B35 Y:$78B39 Y:$78B3D Data Registers C and D are listed here for future use and documentation purposes only. They do not pertain to the HiperFace setup and always read zero. Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 Channel 8 PinOuts and Software Setup HiperFace Serial Data C Y:$78B22 Y:$78B26 Y:$78B2A Y:$78B2E Y:$78B32 Y:$78B36 Y:$78B3A Y:$78B3E HiperFace Serial Data D Y:$78B23 Y:$78B27 Y:$78B28 Y:$78B2F Y:$78B33 Y:$78B37 Y:$78B38 Y:$78B3F 73 Geo Brick LV User Manual Setting up HiperFace Encoders Example An 8-axis Geo Brick LV is connected to eight HiperFace encoders, serial data is programmed to 9600 (M=129, N=2) baud rate for all eight channels: =0 Rising Edge =1 Falling Edge =0 Trigger on Phase =1 Trigger on Servo 0 clock Edge 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 0 0 0 0 0 0 1 0 0 Description: Bit #: Binary: $4 for HiperFace Typically =0 M Divisor 0 Hex ($): 0 0 0 N Divisor 0 8 0 1 0 0 1 1 0 0 0 0 2 Trigger Delay 0 Protocol 0 4 The only user configurable HiperFace Global Control field is the baud rate (M and N divisors). Note The channel control registers are programmed to read position ($42): =0 Disabled =1 Enabled Bit #: Binary: Command code 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 1 1 1 1 1 1 1 1 Hex ($): 0 4 Note 0 0 1 2 0 0 0 1 3 1 0 Always $FF for General Broadcast 0 0 0 =0 Disabled =1 Enabled 0 1 0 Trigger Mode Trigger Enable Description: =0 Continuous =1 One shot Senc Mode = $42 Read position = $50 Encoder Status = $53 Reset Encoder 0 1 4 Encoder Address F F The only user configurable HiperFace Channel Control field is the command code: $42 to read position $50 to read encoder status $53 to reset encoder PinOuts and Software Setup 74 Geo Brick LV User Manual The Global and Channel Control registers have to be initialized on power-up. Following, is an example PLC showing the initialization of all eight channels: //=========================== NOTES ABOUT THIS PLC EXAMPLE ================================// // This PLC example utilizes: - M5990 through M5999 // - Coordinate system 1 Timer 1 // Make sure that current and/or future configurations do not create conflicts with // these parameters. //=========================================================================================// M5990..5999->* ; Self-referenced M-Variables M5990..5999=0 ; Reset at download //========================= GLOBAL CONTROL REGISTERS #define HFGlobalCtrl1_4 M5990 ; Channels 1-4 #define HFGlobalCtrl5_8 M5991 ; Channels 5-8 HFGlobalCtrl1_4->X:$78B2F,0,24,U ; Channels 1-4 HFGlobalCtrl5_8->X:$78B3F,0,24,U ; Channels 5-8 ======================================// HiperFace global control register HiperFace global control register HiperFace global control register address HiperFace global control register address //======================== CHANNEL CONTROL REGISTERS ======================================// #define Ch1HFCtrl M5992 ; Channel 1 HiperFace control register #define Ch2HFCtrl M5993 ; Channel 2 HiperFace control register #define Ch3HFCtrl M5994 ; Channel 3 HiperFace control register #define Ch4HFCtrl M5995 ; Channel 4 HiperFace control register #define Ch5HFCtrl M5996 ; Channel 5 HiperFace control register #define Ch6HFCtrl M5997 ; Channel 6 HiperFace control register #define Ch7HFCtrl M5998 ; Channel 7 HiperFace control register #define Ch8HFCtrl M5999 ; Channel 8 HiperFace control register Ch1HFCtrl->X:$78B20,0,24,U Ch2HFCtrl->X:$78B24,0,24,U Ch3HFCtrl->X:$78B28,0,24,U Ch4HFCtrl->X:$78B2C,0,24,U Ch5HFCtrl->X:$78B30,0,24,U Ch6HFCtrl->X:$78B34,0,24,U Ch7HFCtrl->X:$78B38,0,24,U Ch8HFCtrl->X:$78B3C,0,24,U ; ; ; ; ; ; ; ; Channel Channel Channel Channel Channel Channel Channel Channel 1 2 3 4 5 6 7 8 HiperFace HiperFace HiperFace HiperFace HiperFace HiperFace HiperFace HiperFace control control control control control control control control register register register register register register register register Address Address Address Address Address Address Address Address //========= POWER-ON PLC EXAMPLE, GLOBAL & CHANNEL CONTROL REGISTERS ======================// Open PLC 1 Clear HFGlobalCtrl1_4=$812004 ; Channels 1-4 HiperFace, 9600 baud rate (M=129 N=2) –User Input HFGlobalCtrl5_8=$812004 ; Channels 5-8 HiperFace, 9600 baud rate (M=129 N=2) –User Input Ch1HFCtrl=$4234FF ; Channel 1 HiperFace control register (read position) –User Input Ch2HFCtrl=$4234FF ; Channel 2 HiperFace control register (read position) –User Input Ch3HFCtrl=$4234FF ; Channel 3 HiperFace control register (read position) –User Input Ch4HFCtrl=$4234FF ; Channel 4 HiperFace control register (read position) –User Input Ch5HFCtrl=$4234FF ; Channel 5 HiperFace control register (read position) –User Input Ch6HFCtrl=$4234FF ; Channel 6 HiperFace control register (read position) –User Input Ch7HFCtrl=$4234FF ; Channel 7 HiperFace control register (read position) –User Input Ch8HFCtrl=$4234FF ; Channel 8 HiperFace control register (read position) –User Input I5111=500*8388608/I10 while(I5111>0) endw ; ½ sec delay Dis plc 1 ; Execute once on power-up or reset Close //=========================================================================================// PinOuts and Software Setup 75 Geo Brick LV User Manual Channels 1 through 4 are driving HiperFace encoders with 12-bit (4096) single-turn resolution and 12bit (4096) multi-turn resolution for a total number of data bits of 24 (12+12). The entire data stream is held in the HiperFace serial data A register: HiperFace Data A Register [23:0] HiperFace Data A Register [23:0] [11:0] Multi-Turn Data Single-Turn Data Channels 5 through 8 are driving HiperFace encoders with 16-bit (65536) single-turn resolution and 12bit (4096) multi-turn resolution for a total number of data bits of 28 (16+12). The HiperFace serial Data A register holds the 16-bit single-turn data and the first 8 bits of multi-turn data. The Hiperface serial Data B register holds the 4 bits overflow of multi-turn data: HiperFace Data B Register HiperFace Data A Register [23:4] [3:0] [23:15] [15:0] Multi-Turn Data1 Multi-Turn Data Single-Turn Data The automatic absolute position read in PMAC, using Ixx10 and Ixx95, expects the data to be left shifted (5-bits) in the Encoder Conversion Table. Reading raw data and constructing position directly out of the serial encoder registers requires a custom procedure. The following example PLC reads and constructs the absolute position for channels 1 through 8. It is preconfigured for the user to input their encoder information, and specify which channels are being used. Using the Absolute Position Read Example PLC Under User Input section: 1. Enter single turn (ChxSTRes) and multi turn (ChxMTRes) resolutions in bits for each encoder. For strictly absolute single turn encoders, multi turn resolution is set to zero. 2. In ChAbsSel, specify which channels are desired to perform an absolute position read. This value is in hexadecimal. A value of 1 specifies that this channel is connected, 0 specifies that it is not connected and should not perform and absolute read. Examples: Channel# 8 7 6 5 4 3 2 1 Reading Absolute Position, channels ChAbsSel (Binary) 0 0 0 0 1 1 1 1 => ChAbsSel=$0F 1 through 4 ChAbsSel (Hex) 0 F Reading Absolute Position, channels 1,3,5,7 Channel# 8 7 6 5 4 3 2 1 ChAbsSel (Binary) 0 1 0 1 0 1 0 1 => ChAbsSel=$55 ChAbsSel (Hex) 5 5 //=========================== NOTES ABOUT THIS PLC EXAMPLE ================================// // This PLC example utilizes: - M6000 through M6035 // - P7000 through P7032 // Make sure that current and/or future configurations do not create conflicts with // these parameters. //=========================================================================================// M6000..6035->* ; Self-referenced M-Variables M6000..6035=0 ; Reset M-Variables at download P7000..7032=0 ; Reset P-Variables at download //==================================== USER INPUT =========================================// #define Ch1STRes P7000 #define Ch1MTRes P7001 #define Ch2STRes P7002 #define Ch2MTRes P7003 #define Ch3STRes P7004 #define Ch3MTRes P7005 PinOuts and Software Setup 76 Geo Brick LV User Manual #define #define #define #define #define Ch4STRes Ch5STRes Ch6STRes Ch7STRes Ch8STRes Ch1STRes=12 Ch2STRes=12 Ch3STRes=12 Ch4STRes=12 Ch5STRes=16 Ch6STRes=16 Ch7STRes=16 Ch8STRes=16 P7006 P7008 P7010 P7012 P7014 #define #define #define #define #define Ch1MTRes=12 Ch2MTRes=12 Ch3MTRes=12 Ch4MTRes=12 Ch5MTRes=12 Ch6MTRes=12 Ch7MTRes=12 Ch8MTRes=12 #define ChAbsSel ChAbsSel=$FF P7016 ; ; ; ; ; ; ; ; Ch1 Ch2 Ch3 Ch4 Ch5 Ch6 Ch7 Ch8 Ch4MTRes Ch5MTRes Ch6MTRes Ch7MTRes Ch8MTRes Multi Multi Multi Multi Multi Multi Multi Multi Turn Turn Turn Turn Turn Turn Turn Turn P7007 P7009 P7011 P7013 P7015 and and and and and and and and Single Single Single Single Single Single Single Single Turn Turn Turn Turn Turn Turn Turn Turn Resolutions Resolutions Resolutions Resolutions Resolutions Resolutions Resolutions Resolutions --User --User --User --User --User --User --User --User Input Input Input Input Input Input Input Input ; Select Channels using absolute read (in Hexadecimal) ; Channels selected for absolute position read –User Input //=============================== DEFINITIONS & SUBSTITUTIONS =============================// #define SerialRegA M6000 ; HiperFace Serial Data Register A #define SerialRegB M6001 ; HiperFace Serial Data Register B #define Two2STDec M6002 ; 2^STRes in decimal, for shifting operations #define Two2STHex M6003 ; 2^STRes in Hexadecimal, for bitwise operations #define Two2MTDec M6004 ; 2^MTRes in decimal, for shifting operations #define Two2MTHex M6005 ; 2^MTRes in Hexadecimal, for bitwise operations #define MTTemp1 M6006 ; Multi Turn Data temporary holding register 1 #define MTTemp2 M6007 ; Multi Turn Data temporary holding register 2 #define STTemp1 M6008 ; Single Turn Data temporary holding register 1 #define STTemp2 M6009 ; Single Turn Data temporary holding register 2 #define ChNoHex M6010 ; Channel Number in Hex #define ChAbsCalc M6011 ; Abs. calc. flag (=1 true do read, =0 false do not do read) #define LowerSTBits P7017 ; Lower Single Turn Bits, RegA #define UpperSTBits P7018 ; Upper Single Turn Bits, RegB (where applicable) #define LowerMTBits P7019 ; Lower Multi Turn Bits, RegA (where applicable) #define UpperMTBits P7020 ; Upper Multi Turn Bits, RegB (where applicable) #define STData P7021 ; Single Turn Data Word #define MTData P7022 ; Multi Turn Data Word #define NegTh P7023 ; Negative Threshold #define Temp1 P7024 ; General Temporary holding register 1 #define Temp2 P7025 ; General Temporary holding register 2 #define SerialBase P7026 ; Indirect addressing index for serial registers, 6020 #define ChBase P7027 ; Indirect addressing index for channel No, 162 #define ChNo P7028 ; Current Channel Number #define ResBase P7029 ; Indirect Addressing index for resolution input, 6000 #define STRes P7030 ; Single Turn Resolution of currently addressed channel #define MTRes P7031 ; Multi Turn Resoltuion of currently addressed channel #define PsfBase P7032 ; Indirect addressing for position scale factor Ixx08, 108 // HiperFace Serial Data Registers A and B M6020->Y:$78B20,0,24,U M6021->Y:$78B21,0,24,U ; Channel 1 M6022->Y:$78B24,0,24,U M6023->Y:$78B25,0,24,U ; Channel 2 M6024->Y:$78B28,0,24,U M6025->Y:$78B29,0,24,U ; Channel 3 M6026->Y:$78B2C,0,24,U M6027->Y:$78B2D,0,24,U ; Channel 4 M6028->Y:$78B30,0,24,U M6029->Y:$78B31,0,24,U ; Channel 5 M6030->Y:$78B34,0,24,U M6031->Y:$78B35,0,24,U ; Channel 6 M6032->Y:$78B38,0,24,U M6033->Y:$78B39,0,24,U ; Channel 7 M6034->Y:$78B3C,0,24,U M6035->Y:$78B3D,0,24,U ; Channel 8 //===================================== PLC SCRIPT ========================================// Open PLC 1 Clear ChNo=0 While(ChNo!>7) ; Loop for 8 Channels ChNo=ChNo+1 ChNoHex=exp((ChNo-1)*ln(2)) ChAbsCalc=(ChAbsSel&ChNoHex)/ChNoHex If (ChAbsCalc!=0) ; Absolute read on this channel? SerialBase=6020+(ChNo-1)*2 SerialRegA=M(SerialBase) SerialRegB=M(SerialBase+1) ResBase=7000+(ChNo-1)*2 STRes=P(ResBase) MTRes=P(ResBase+1) PinOuts and Software Setup 77 Geo Brick LV User Manual STData=0 MTData=0 If (STRes!>24) ; Single Turn Res<=24 //===========SINGLE TURN DATA===========// Two2STDec=exp(STRes*ln(2)) Two2STHex=Two2STDec-1 STData=SerialRegA&Two2STHex //===========MULTI TURN DATA============// Two2MTDec=exp(MTRes*ln(2)) Two2MTHex=Two2MTDec-1 If (MTRes=0) LowerMTBits=0 UpperMTBits=0 Two2MTDec=0 Two2MTHex=0 MTData=0 Else LowerMTBits=24-STRes STTemp1=exp(LowerMTBits*ln(2)) STTemp2=0 UpperMTBits=MTRes-LowerMTBits MTTemp1=exp(LowerMTBits*ln(2)) MTTemp2=exp(UpperMTBits*ln(2)) Temp1=(SerialRegA/Two2STDec)&(MTTemp1-1) Temp2=SerialRegB&(MTTemp2-1) MTData=Temp2*STTemp1+Temp1 EndIf Else ; Single Turn Res>24 //===========SINGLE TURN DATA===========// LowerSTBits=24 UpperSTBits=STRes-24 STTemp1=exp(UpperSTBits*ln(2)) STTemp2=STTemp1-1 Two2STDec=16777216*STTemp1 Two2STHex=Two2STDec-1 STData=(SerialRegB&STTemp2)*16777216+SerialRegA //===========MULTI TURN DATA============// If (MTRes=0) LowerMTBits=0 UpperMTBits=0 Two2MTDec=0 Two2MTHex=0 MTData=0 Else Two2MTDec=exp(MTRes*ln(2)) Two2MTHex=Two2MTDec-1 LowerMTBits=0 UpperMTBits=MTRes MTTemp1=exp(UpperMTBits*ln(2)) MTTemp2=MTTemp1-1 MTData=(SerialRegB/STTemp1)&MTTemp2 EndIf EndIf //======ASSEMBLING ACTUAL POSITION======// ChBase=162+(ChNo-1)*100 PsfBase=108+(ChNo-1)*100 NegTh=Two2MTDec/2 If (MTData!>NegTh) M(ChBase)=(MTData*Two2STDec+STData)*32*I(PsfBase) Else M(ChBase)=-(((Two2MTHex-MTData)*Two2STDec)+(Two2STDec-STData))*32*I(PsfBase) EndIf EndIf EndW ChNo=0 Dis plc 1 Close PinOuts and Software Setup 78 Geo Brick LV User Manual Encoder Count Error (Mxx18) The Geo Brick LV has an encoder count error detection feature. If both the A and B channels of the quadrature encoder change state at the decode circuitry (post-filter) in the same hardware sampling clock (SCLK) cycle, an unrecoverable error to the counter value will result (lost counts). Suggested M-Variable Mxx18 for this channel is then set and latched to 1 (until reset or cleared). The three most common root causes of this error: Real encoder hardware problem Trying to move the encoder (motor) faster than it’s specification Using an extremely high resolution/speed encoder. This may require increasing the SCLK The default sampling clock in the Geo Brick LV is ~ 10MHz, which is acceptable for virtually all applications. A setting of I7m03 of 2257 (from default of 2258) sets the sampling clock SCLK at about ~20MHz. It can be increased to up to ~40 MHz. No automatic action is taken by the Geo Brick LV if the encoder count error bit is set. Note PinOuts and Software Setup 79 Geo Brick LV User Manual Encoder Loss Detection, Sinusoidal Encoder loss detection with Sinusoidal encoders can be performed using the encoder conversion table. The ECT can be set up to compute the sum of the squares of the sine and cosine terms (including user introduced biases). Using channel #1, the encoder conversion table (5-line entry) for computing the sum of the squares would look like: I8024 I8025 I8026 I8027 I8028 = = = = = $F78B00 $100000 $0 $0 $0 ; ; ; ; ; Diagnostic entry for sinusoidal encoder(s) Bit 0 is 0 to compute sum of the squares Active Sine/Cosine Bias Corrections Sum of the squares result The result (@ $351D for example) corresponds to: (SineADC + SineBias)2 + (CosineADC + CosineBias)2 This term can be monitored to check for loss of the encoder. If the inputs are no longer driven externally, for example because the cable has come undone, the positive and negative input pair to the ADC will pull to substantially the same voltage, and the output of the ADC will be a very small number, resulting in a small magnitude of the sum of squares in at least part of the cycle. (If both signals cease to be driven externally, the sum of squares will be small over the entire cycle). The high four bits (bits 20 – 23) of the sum-of-squares result can be monitored, and if the four-bit value goes to 0, it can be concluded that the encoder has been “lost”, and the motor should be “killed”. The 4-bit value can be obtained as follows: #define Mtr1EncLoss M180 Mtr1EncLoss->X:$351D,20,4 ! Caution ; Motor#1 Encoder Loss Status ; Upper 4 bits of the sum of the squares Appropriate action (user-written plc) needs to be implemented when an encoder loss is encountered. To avoid a runaway, an immediate Kill of the motor/encoder in question is strongly advised. No automatic firmware (Geo Brick) action is taken upon detection of encoder(s) loss; it is the user’s responsibility to perform the necessary action to make the application safe under these conditions. Killing the motor/encoder in question is the safest action possible, and strongly recommended to avoid a runaway, and machine damage. Also, the user should decide the action to be taken (if any) for the other motors in the system. PinOuts and Software Setup 80 Geo Brick LV User Manual Encoder Loss Example PLC: A 4-axis Geo Brick is setup to kill all motors upon detection of one or more encoder loss. In addition, it does not allow enabling any of the motors when an encoder is in a loss condition: #define Mtr1AmpEna Mtr1AmpEna->X:$B0,19 #define Mtr2AmpEna Mtr2AmpEna->X:$130,19 #define Mtr3AmpEna Mtr3AmpEna->X:$1B0,19 #define Mtr4AmpEna Mtr4AmpEna->X:$230,19 #define Mtr1EncLoss Mtr1EncLoss->Y:$078807,0,1 #define Mtr2EncLoss Mtr2EncLoss->Y:$078807,1,1 #define Mtr3EncLoss Mtr3EncLoss->Y:$078807,2,1 #define Mtr4EncLoss Mtr4EncLoss->Y:$078807,3,1 #define SysEncLoss SysEncLoss=0 M139 M239 M339 M439 M180 M280 M380 M480 P5989 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Motor#1 Amplifier Enable Status Suggested M-Variable Motor#2 Amplifier Enable Status Suggested M-Variable Motor#3 Amplifier Enable Status Suggested M-Variable Motor#4 Amplifier Enable Status Suggested M-Variable Motor#1 Encoder Loss Status Bit Bit Bit Bit Bit Motor#2 Encoder Loss Status Bit Motor#3 Encoder Loss Status Bit Motor#4 Encoder Loss Status Bit System Global Encoder Loss Status (user defined) Save and Set to 0 at download, normal operation =1 System Encoder Loss Occurred OPEN PLC 1 CLEAR If (SysEncLoss=0) ; No Loss yet, normal mode If (Mtr1EncLoss=0 or Mtr2EncLoss=0 or Mtr4EncLoss=0 or Mtr4EncLoss=0) CMD^K ; One or more Encoder Loss(es) detected, kill all motors SysEncLoss=1 ; Set Global Encoder Loss Status to Fault EndIf EndIF If (SysEncLoss=1) ; Global Encoder Loss Status At Fault? If (Mtr1AmpEna=1 or Mtr2AmpEna=1 or Mtr4AmpEna=1 or Mtr4AmpEna=1) ; Trying to Enable Motors? CMD^K ; Do not allow Enabling Motors, Kill all EndIF EndIF CLOSE PinOuts and Software Setup 81 Geo Brick LV User Manual X1-X8: Encoder Feedback, SSI 8 X1-X8: D-sub DA-15F Mating: D-sub DA-15M Pin # Symbol Function 15 Unused 2 Unused 3 Unused EncPwr Output 5 Data- Input 6 Clock- Output Unused 9 Unused 10 Unused 11 Unused 13 Clock+ Output 14 Data+ Input 15 12 3 11 2 10 1 9 Serial Encoder Clock- 8 Common 13 4 Data- packet Unused GND 14 5 Encoder Power 5 Volts only 7 12 6 Notes 1 4 7 Common Ground Serial Encoder Clock+ Data+ Packet Unused Note Some SSI devices require 24V power which has to be brought in externally. Pins #4, and #12 are unused in this case, leave floating. Hardware capture is not available with Serial Data encoders Configuring SSI Configuring the SSI protocol requires the programming of two essential control registers: Global Control Registers Channel Control Registers The resulting data is found in: SSI Data Registers PinOuts and Software Setup 82 Geo Brick LV User Manual Global Control Registers X:$78BnF (Default value: $630002) where: n=2 for axes 1-4 n=3 for axes 5-8 Global Control Register X:$78B2F X:$78B3F Axes 1-4 Axes 5-8 The Global Control register is used to program the serial encoder interface clock frequency SER_Clock and configure the serial encoder interface trigger clock. SER_Clock is generated from a two-stage divider clocked at 100 MHz: M N Clock Frequency 49 0 2.0 MHz 99 0 1.0 MHz 99 1 500.0 KHz 99 2 250.0 KHz … … Default Settings: M=99, N=0 => 1 MHz transfer rates There are two external trigger sources; phase and servo. Bits [9:8] in the Global Control register are used to select the source and active edge to use as the internal serial encoder trigger. The internal trigger is used by all four channels to initiate communication with the encoder. To compensate for external system delays, this trigger has a programmable 4-bit delay setting in 20 μsec increments. 23--16 15--12 M_Divisor N_Divisor Bit Type Default [23:16] R/W 0x63 [15:12] R/W 0x0 [11:10] R 00 [09] R/W 0 [08] R/W 0 [07:04] R/W 0x0 [03:00] R 0x2 11 10 9 8 Trigger Clock Trigger Edge 7 6 5 4 Trigger Delay 3 2 1 0 Protocol Code Description Intermediate clock frequency for SER_Clock. The M_Divisor intermediate clock is generated from a (M+1) divider clocked at 100 MHz. Final clock frequency for SER_Clock. The final clock is N N_Divisor generated from a 2 divider clocked by the intermediate clock. Reserved Reserved and always reads zero. =0, trigger on Phase Clock TriggerClock Trigger clock select: =1, trigger on Servo Clock =0, select rising edge TriggerEdge Active clock edge select: =1, select falling edge Trigger delay program relative to the active edge of the TriggerDelay trigger clock. Units are in increments of 20 usec. This read-only bit field is used to read the serial encoder ProtocolCode interface protocol supported by the FPGA. A value of $2 defines this as SSI protocol. PinOuts and Software Setup Name 83 Geo Brick LV User Manual Channel Control Registers X:$78Bn0, X:$78Bn4, X:$78Bn8, X:$78BnC Channel 1 Channel 2 Channel 3 Channel 4 where: n=2 for axes 1-4 n=3 for axes 5-8 X:$78B20 X:$78B24 X:$78B28 X:$78B2C Channel 5 Channel 6 Channel 7 Channel 8 X:$78B30 X:$78B34 X:$78B38 X:$78B3C Each channel has its own Serial Encoder Command Control Register defining functionality parameters. Parameters such as setting the number of position bits in the serial bit stream, enabling/disabling channels through the SENC_MODE (when this bit is cleared, the serial encoder pins of that channel are tri-stated), enabling/disabling communication with the encoder using the trigger control bit. [23:16] Bit 15 14 Parity Type 13 Trigger Mode Type Default [23:16] R 0x00 [15:14] R/W 0x00 R/W 0 [12] R/W 0 [11] R/W 0 R 0 W 0 [09:06] R 0x0 [05:00] W 0x00 [13] [10] Name 12 Trigger Enable 11 GtoB 10 Rx data ready /Senc Mode [9:6] [5:0] PositionBits/ Resolution Description Reserved and always reads zero. Parity Type of the received data: Parity Type 00=None 10=Even 01=Odd 11=Reserved Trigger Mode to initiate communication: 0= continuous trigger Trigger Mode 1= one-shot trigger All triggers occur at the defined Phase/Servo clock edge and delay setting. 0= disabled 1= enabled Trigger Enable This bit must be set for either trigger mode. If the Trigger Mode bit is set for one-shot mode, the hardware will automatically clear this bit after the trigger occurs. Convert G to Gray code to Binary conversion: 0=Binary B 1=Gray This read-only bit provides the received data status. It is low while the interface logic is communicating (busy) with the RxData Ready serial encoder. It is high when all the data has been received and processed. This write-only bit is used to enable the output drivers for SENC_MODE the SENC_SDO, SENC_CLK, SENC_ENA pins for each respective channel. Reserved Reserved and always reads zero. This bit field is used to define the number of position data Position Bits bits or encoder resolution: Range is 12 – 32 (001100 –100000) PinOuts and Software Setup Reserved 84 Geo Brick LV User Manual SSI Data Registers The SSI data is conveyed into 4 memory locations; Serial Encoder Data A, B, C, and D. The Serial Encoder Data A register holds the 24 bits of the encoder position data. If the data exceeds the 24 available bits in this register, the upper overflow bits are LSB justified and readable in the Serial Encoder Data B, which also holds the parity error flag. Serial Encoder Data C, and D registers are reserved and always read zero. 23 Parity Err Serial Encoder Data B [22:08] [07:0] Position Data [31:24] Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 Channel 8 SSI Encoder Data A Y:$78B20 Y:$78B24 Y:$78B28 Y:$78B2C Y:$78B30 Y:$78B34 Y:$78B38 Y:$78B3C Serial Encoder Data A [23:0] Position Data [23:0] SSI Encoder Data B Y:$78B21 Y:$78B25 Y:$78B29 Y:$78B2D Y:$78B31 Y:$78B35 Y:$78B39 Y:$78B3D Data Registers C and D are listed here for future use and documentation purposes only. They do not pertain to the SSI setup and always read zero. Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 Channel 8 PinOuts and Software Setup SSI Encoder Data C Y:$78B22 Y:$78B26 Y:$78B2A Y:$78B2E Y:$78B32 Y:$78B36 Y:$78B3A Y:$78B3E SSI Encoder Data D Y:$78B23 Y:$78B27 Y:$78B28 Y:$78B2F Y:$78B33 Y:$78B37 Y:$78B38 Y:$78B3F 85 Geo Brick LV User Manual SSI Control Registers Setup Example Channel 1 is driving a 25-bit (13-bit Singleturn, 12-bit Multiturn) SSI encoder. The encoder outputs binary data with no parity, and requires a 1 MHz serial clock. Global Control Register The Global Control register is a 24-bit hexadecimal word which is set up as follows: =0 Rising Edge =1 Falling Edge =0 Trigger on Phase =1 Trigger on Servo 0 clock Edge 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 1 0 Description: Bit #: Binary: $2 for SSI Typically =0 M Divisor 1 Hex ($): 1 0 0 N Divisor 0 6 1 1 0 0 3 Field M divisor N divisor Trigger clock Trigger Edge Trigger Delay Protocol Code Value =99 =0 =0 =0 =0 =2 0 0 0 0 0 0 Trigger Delay 0 Protocol 0 2 Notes Global Control Word Hex 0x63 Hex 0x0 Trigger on Phase (recommended) Rising edge (recommended) No delay (typical) Hex 0x2, SSI protocol $630002 Channel Control Register The Channel Control register is a 24-bit hexadecimal word which is set up as follows: =0 Disabled =1 Enabled Bit #: Binary: Hex ($): Parity Type Trigger Mode Trigger Enable Reserved (always 0) Description: =0 Continuous =1 One shot =0 Disabled =1 Enabled 0 Senc Mode =00 None =01 Odd =10 Even Encoder Resolution (ST+MT) Reserved (always 0) Bit Length 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 PinOuts and Software Setup 0 0 0 0 0 0 0 0 1 1 0 1 4 1 9 86 Geo Brick LV User Manual Field Parity Type Trigger Mode Trigger Enable Gray / Binary Data Ready / Senc Mode Protocol Bits Value =0 =0 =1 =0 =1 =25 Notes Channel Control Word Hex 0x00 Continuous trigger (typical) Enable Binary Enable serial driver Hex 0x19 $001419 Control Registers Power-On PLC The global and channel control words have to be executed once on power-up: //=========================== NOTES ABOUT THIS PLC EXAMPLE ================================// // This PLC example utilizes: - M5990 through M5991 // - Coordinate system 1 Timer 1 // Make sure that current and/or future configurations do not create conflicts with // these parameters. //=========================================================================================// M5990..5991->* ; Self-referenced M-Variables M5990..5991=0 ; Reset at download //========================= GLOBAL CONTROL REGISTERS ======================================// #define SSIGlobalCtrl1_4 M5990 ; Channels 1-4 SSI global control register SSIGlobalCtrl1_4->X:$78B2F,0,24,U ; Channels 1-4 SSI global control register address //======================== CHANNEL CONTROL REGISTERS ======================================// #define Ch1SSICtrl M5991 ; Channel 1 SSI control register Ch1SSICtrl->X:$78B20,0,24,U ; Channel 1 SSI control register Address //========= POWER-ON PLC EXAMPLE, GLOBAL & CHANNEL CONTROL REGISTERS ======================// Open PLC 1 Clear SSIGlobalCtrl1_4=$630002 ; Trigger at Phase, 1 MHz serial Clock (M=99, N=0)–User Input Ch1SSICtrl=$001419 ; Channel 1 SSI control register –User Input I5111=500*8388608/I10 while(I5111>0) endw ; ½ sec delay Dis plc 1 ; Execute once on power-up or reset Close //=========================================================================================// PinOuts and Software Setup 87 Geo Brick LV User Manual X1-X8: Encoder Feedback, EnDat 2.1/2.2 8 X1-X8: D-sub DA-15F Mating: D-Sub DA-15M Pin # Symbol Function 15 Unused 2 Unused 3 Unused EncPwr Output 5 Data- Input 6 Clock- Output Unused 9 Unused 10 Unused 11 Unused 13 Clock+ Output 14 Data+ Input 15 12 3 11 2 10 1 9 Serial Encoder Clock- 8 Common 13 4 Data- packet Unused GND 14 5 Encoder Power 5 Volts 7 12 6 Notes 1 4 7 Common Ground Serial Encoder Clock+ Data+ Packet Unused Note Some EnDat devices require 24V power which has to be brought in externally. Pins 4, and 12 are unused in this case, leave floating. Hardware capture is not available with Serial encoders Configuring EnDat Configuring the EnDat protocol requires the programming of two essential control registers: Global Control Registers Channel Control Registers The resulting data is found in: EnDat Data Registers PinOuts and Software Setup 88 Geo Brick LV User Manual Global Control Registers X:$78BnF (default value: $002003) where n=2 for axes 1-4 n=3 for axes 5-8 Axes 1-4 Axes 5-8 Global Control Register X:$78B2F X:$78B3F The Global Control register is used to program the serial encoder interface clock frequency. SENC_CLK is the serial data clock transmitted from the Brick to the encoder. It is used by the encoder to clock in data transmitted from the Brick, and clock out data from the encoder: M N Serial Clock Frequency 0 0 4.0 MHz 0 2 1.0 MHz 0 3 500 KHz 0 4 250 KHz … … … Default Settings M=0, N=2 => 1 MHz transfer rate There are two external trigger sources; phase and servo. Bits [9:8] in the Global Control register are used to select the source and active edge to use as the internal serial encoder trigger. The internal trigger is used by all four channels to initiate communication with the encoder. To compensate for external system delays, this trigger has a programmable 4-bit delay setting in 20 μsec increments. 23--16 15--12 M_Divisor N_Divisor Bit Type Default [23:16] R/W 0x00 [15:12] R/W 0x2 [11:10] R 00 [09] R/W 0 [08] R/W 0 [07:04] R/W 0x0 [03:00] R 0x3 11 10 9 8 Trigger Clock Trigger Edge 7 6 5 4 Trigger Delay 3 2 1 0 Protocol Code Description Intermediate clock frequency for SER_Clock. The M_Divisor intermediate clock is generated from a (M+1) divider clocked at 100 MHz. Final clock frequency for SER_Clock. The final clock is N N_Divisor generated from a 2 divider clocked by the intermediate clock. Reserved Reserved and always reads zero. Trigger clock select: 0= PhaseClock TriggerClock 1= ServoClock Active clock edge select: 0= rising edge TriggerEdge 1= falling edge Trigger delay program relative to the active edge of the TriggerDelay trigger clock. Units are in increments of 20 usec. This read-only bit field is used to read the serial encoder ProtocolCode interface protocol supported by the FPGA. A value of 0x3 defines this protocol as EnDat. PinOuts and Software Setup Name 89 Geo Brick LV User Manual Channel Control Registers X:$78Bn0, X:$78Bn4, X:$78Bn8, X:$78BnC Channel 1 Channel 2 Channel 3 Channel 4 where: n=2 for axes 1-4 n=3 for axes 5-8 X:$78B20 X:$78B24 X:$78B28 X:$78B2C Channel 5 Channel 6 Channel 7 Channel 8 X:$78B30 X:$78B34 X:$78B38 X:$78B3C Each channel has its own Serial Encoder Command Control Register defining functionality parameters. Parameters such as setting the number of position bits in the serial bit stream, enabling/disabling channels through the SENC_MODE (when this bit is cleared, the serial encoder pins of that channel are tri-stated), enabling/disabling communication with the encoder using the trigger control bit. 23 22 Bit [21:16] 15 14 Command Code Type Default 13 Trigger Mode Name [23:22] R 0x000 Reserved [21:16] R 0x00 Command Code [15:14] R 00 Reserved R/W 0 Trigger Mode [12] R/W 0 Trigger Enable [11] R/W 0 Reserved R 0 RxData Ready W 0 SENC_MODE [09:06] R 0x0 Reserved [05:00] W 0x00 Position Bits [13] [10] PinOuts and Software Setup 12 Trigger Enable 11 10 Rxdata ready /Senc Mode [9:6] [5:0] PositionBits/ Resolution Description Reserved and always reads zero. ($38) 111000 – Encoder to Send Position (EnDat2.2 only) ($15) 010101 – Encoder to Receive Reset (EnDat2.2 only) ($07) 000111 – Encoder to Send Position (EnDat 2.1 & 2.2) ($2A)101010 – Encoder to Receive Reset (EnDat 2.1 & 2.2) Reserved and always reads zero. Trigger Mode: 0= continuous trigger 1= one-shot trigger All triggers occur at the defined Phase/Servo clock edge and delay setting. See Global Control register for these settings. Enable trigger: 0= disabled 1= enabled This bit must be set for either trigger mode. If the Trigger Mode bit is set for one-shot mode, the hardware will automatically clear this bit after the trigger occurs. Reserved and always reads zero. This read-only bit provides the received data status. It is low while the interface logic is communicating (busy) with the serial encoder. It is high when all the data has been received and processed. This write-only bit is used to enable the output drivers for the SENC_SDO, SENC_CLK, SENC_ENA pins for each respective channel. Reserved and always reads zero. This bit field is used to define the number of position data bits or encoder resolution: Range is 12 – 40 (001100 –101000) 90 Geo Brick LV User Manual EnDat Data Registers The EnDat data is conveyed into 4 memory locations; EnDat Data A, B, C, and D. The EnDat Data A register holds the 24 bits of the encoder position data. If the data exceeds the 24 available bits in this register, the upper overflow bits are LSB justified and readable in the EnDat Data B register, which also holds error flags. The error bit flag is always returned by the encoder, except for a Reset command. The CRC error bit is set if the return data fails the CRC verification. The timeout error flag is set if the SEIGATE3 does not receive a response from the encoder. EnDat Data C, and D registers are reserved and always read zero. 23 TimeOut Err 22 CRC Err EnDat Data B 21 [20:16] Err flag Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 Channel 8 [15:0] Position Data [39:24] EnDat Data A Y:$78B20 Y:$78B24 Y:$78B28 Y:$78B2C Y:$78B30 Y:$78B34 Y:$78B38 Y:$78B3C EnDat Data A [23:0] Position Data [23:0] EnDat Data B Y:$78B21 Y:$78B25 Y:$78B29 Y:$78B2D Y:$78B31 Y:$78B35 Y:$78B39 Y:$78B3D EnDat Registers C and D are listed here for future use and documentation purposes only. They do not pertain to the EnDat setup and always read zero. Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 Channel 8 PinOuts and Software Setup EnDat Data C Y:$78B22 Y:$78B26 Y:$78B2A Y:$78B2E Y:$78B32 Y:$78B36 Y:$78B3A Y:$78B3E EnDat Data D Y:$78B23 Y:$78B27 Y:$78B28 Y:$78B2F Y:$78B33 Y:$78B37 Y:$78B38 Y:$78B3F 91 Geo Brick LV User Manual EnDat Control Registers Setup Example Channel 1 is driving a 37-bit (25-bit Singleturn, 12-bit Multiturn) EnDat 2.2 encoder. The encoder requires a 4 MHz serial clock. Global Control Register The Global Control register is a 24-bit hexadecimal word which is set up as follows: =0 Rising Edge =1 Falling Edge =0 Trigger on Phase =1 Trigger on Servo 0 clock Edge 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 1 1 Description: Bit #: Binary: $3 for EnDat Typically =0 M Divisor 0 Hex ($): 0 0 0 N Divisor 0 0 0 0 0 0 0 Field M divisor N divisor Trigger clock Trigger Edge Trigger Delay Protocol Code Value =0 =0 =0 =0 =0 =3 0 0 0 0 0 0 Trigger Delay 0 Protocol 0 3 Notes Global Control Word Hex 0x00 Hex 0x0 Trigger on Phase (recommended) Rising edge (recommended) No delay (typical) Hex 0x3, EnDat $000003 Channel Control Register The Channel Control register is a 24-bit hexadecimal word which is set up as follows: =0 Disabled =1 Enabled Description: Bit #: Binary: Hex ($): 0 0 Command Code 0 0 Trigger Mode Trigger Enable =0 Continuous =1 One shot =000111 ($07) Send Position (EnDat 2.1 / 2.2) =101010 ($2A) Reset (EnDat 2.1 / 2.2) =0 Disabled =1 Enabled 0 Senc Mode =111000 ($38) Send Position (EnDat 2.2 only) =010101 ($15) Reset (EnDat 2.2 only) Encoder Resolution (ST+MT) Reserved (always 0) Bit Length (Resolution) 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 3 PinOuts and Software Setup 1 0 0 8 0 0 0 0 1 1 0 1 4 2 5 92 Geo Brick LV User Manual Field Value Notes Command code =$38 Hex 0x38 for EnDat 2.2 only Trigger Mode =0 Continuous trigger (typical) Trigger Enable =1 Enable Data Ready / Senc Mode =1 Enable serial driver Protocol Bits Hex 0x25 =37 Channel Control Word $381425 Control Registers Power-On PLC The Global and Channel Control words have to be executed once on power-up //=========================== NOTES ABOUT THIS PLC EXAMPLE ================================// // This PLC example utilizes: - M5990 through M5991 // - Coordinate system 1 Timer 1 // Make sure that current and/or future configurations do not create conflicts with // these parameters. //=========================================================================================// M5990..5991->* ; Self-referenced M-Variables M5990..5991=0 ; Reset at download //========================= GLOBAL CONTROL REGISTERS ======================================// #define EnDatGlobalCtrl1_4 M5990 ; Channels 1-4 EnDat global control register EnDatGlobalCtrl1_4->X:$78B2F,0,24,U ; Channels 1-4 EnDat global control register address //======================== CHANNEL CONTROL REGISTERS ======================================// #define Ch1EnDatCtrl M5991 ; Channel 1 EnDat control register Ch1EnDatCtrl->X:$78B20,0,24,U ; Channel 1 EnDat control register Address //========= POWER-ON PLC EXAMPLE, GLOBAL & CHANNEL CONTROL REGISTERS ======================// Open PLC 1 Clear EnDatGlobalCtrl1_4=$3 ; Trigger at Phase, 4MHz serial Clock –User Input Ch1EnDatCtrl=$381425 ; Channel 1 EnDat control register –User Input I5111=500*8388608/I10 while(I5111>0) endw ; ½ sec delay Dis plc 1 ; Execute once on power-up or reset Close //=========================================================================================// Note Some EnDat2.2 Encoders do not support additional information with the $38 (111000) command code. Try using $07 (000111) command code if you cannot see data in the Serial Data Register A, or in the position window (after setting up the Encoder Conversion Table). PinOuts and Software Setup 93 Geo Brick LV User Manual X1-X8: Encoder Feedback, BiSS C/B 8 X1-X8: D-sub DA-15F Mating: D-Sub DA-15M Pin # Symbol Function 15 Unused 2 Unused 3 Unused EncPwr Output 5 Data- Input/Output 6 Clock- Output Unused 9 Unused 10 Unused 11 Unused 13 Clock+ Output 14 Data+ Input/Output 15 12 3 11 2 10 1 9 Serial Encoder Clock-, MO- 8 Common 13 4 Data- packet, SLOUnused GND 14 5 Encoder Power 5 Volts 7 12 6 Notes 1 4 7 Common Ground Serial Encoder Clock+ , MO+ Data+ Packet, SLO+ Unused Note Some BiSS devices require 24V power which has to be brought in externally. Pins 4, and 12 are unused in this case, leave floating. Hardware capture is not available with Serial encoders Configuring BiSS Configuring the BiSS protocol requires the programming of two essential control registers: Global Control Registers Channel Control Registers The resulting data is found in: BiSS-C/BiSS-B Data Registers PinOuts and Software Setup 94 Geo Brick LV User Manual Global Control Registers X:$78BnF (default value: $18000B) where n=2 for axes 1-4 n=3 for axes 5-8 Global Control Register X:$78B2F X:$78B3F Axes 1-4 Axes 5-8 The Global Control register is used to program the serial encoder interface clock frequency SER_Clock and configure the serial encoder interface trigger clock. SER_Clock is generated from a two-stage divider clocked at 100 MHz as follows: M N Clock Frequency 49 0 2.0 MHz 99 0 1.0 MHz 99 1 500.0 KHz 99 2 250.0 KHz … … Default Settings: M=24, N=0 => 4 MHz transfer rates There are two external trigger sources; phase and servo. Bits [9:8] in the Global Control register are used to select the source and active edge to use as the internal serial encoder trigger. The internal trigger is used by all four channels to initiate communication with the encoder. To compensate for external system delays, this trigger has a programmable 4-bit delay setting in 20 μsec increments. 23--16 15--12 M_Divisor N_Divisor Bit 11 Type Default 10 9 8 Trigger Clock Trigger Edge Name 7 6 5 4 Trigger Delay 3 2 1 0 Protocol Code Description Intermediate clock frequency for SER_Clock. The intermediate clock is generated from a (M+1) divider clocked at 100 MHz. Final clock frequency for SER_Clock. The final clock is generated from a 2 N divider clocked by the intermediate clock. Reserved and always reads zero. Trigger clock select: 0= PhaseClock 1= ServoClock Active clock edge select: 0= rising edge 1= falling edge Trigger delay program relative to the active edge of the trigger clock. Units are in increments of 20 usec. [23:16] R/W 0x18 M_Divisor [15:12] R/W 0x0 N_Divisor [11:10] R 00 Reserved [09] R/W 0 TriggerClock [08] R/W 0 TriggerEdge [07:04] R/W 0x0 TriggerDelay [03:00] R 0xB ProtocolCode protocol supported by the FPGA. A value of $B defines this This read-only bit field is used to read the serial encoder interface protocol as BiSS. PinOuts and Software Setup 95 Geo Brick LV User Manual Channel Control Registers X:$78Bn0, X:$78Bn4, X:$78Bn8, X:$78BnC Channel 1 Channel 2 Channel 3 Channel 4 where: n=2 for axes 1-4 n=3 for axes 5-8 X:$78B20 X:$78B24 X:$78B28 X:$78B2C Channel 5 Channel 6 Channel 7 Channel 8 X:$78B30 X:$78B34 X:$78B38 X:$78B3C Each channel has its own Serial Encoder Command Control Register defining functionality parameters. Parameters such as setting the number of position bits in the serial bit stream, enabling/disabling channels through the SENC_MODE (when this bit is cleared, the serial encoder pins of that channel are tri-stated), enabling/disabling communication with the encoder using the trigger control bit. [23:16] CRC Mask 15 =0 BiSS-C =1 BiSS-B Bit Type Default 14 MCD 13 Trigger Mode Name [23:16] R/W 0x21 CRC_Mask [15] R/W 0 BiSS B/C [14] R/W 0 MCD [13] R/W 0 Trigger Mode [12] R/W 0 Trigger Enable 0 Reserved 0 RxData Ready [11] [10] R PinOuts and Software Setup 12 Trigger Enable 11 10 Rxdataready SencMode 9 [8:6] Status Bits [5:0] PositionBits/ Resolution Description This bit field is used to define the CRC polynomial used for the position and status data. The 8-bit mask is to define any 4-bit to 8bit CRC polynomial. The mask bits M[7:0] represent the coefficients [8:1], respectively, in the polynomial: M7x8 +M6x7 + M5x6 + M4x5 + M3x4 + M2x3 + M1x2 + M0x1 + 1. The coefficient for x0 is always 1 and therefore not included in the mask. An all zero mask indicates no CRC bits in the encoder data. Most common setting: ($21) 00100001 = x6 + x1 + 1 (typical for Renishaw) ($09) 00001001 = x4 + x1 + 1 This bit is used to select the BiSS protocol mode (=0 BiSS-C, =1 BiSS-B) This bit is used to enable support for the optional MCD bit in BiSS-B mode. Setting this bit has no effect if the BiSS-B mode is not selected. Trigger Mode to initiate communication: 0= continuous trigger 1= one-shot trigger All triggers occur at the defined Phase/Servo clock edge and delay setting. 0= disabled 1= enabled This bit must be set for either trigger mode. If the Trigger Mode bit is set for one-shot mode, the hardware will automatically clear this bit after the trigger occurs. Reserved and always reads zero. This read-only bit provides the received data status. It is low while the interface logic is communicating (busy) with the serial encoder. It is high when all the data has been received and processed. 96 Geo Brick LV User Manual W [09] [08:06] [05:00] 0 0x0 R/W W This write-only bit is used to enable the output drivers for SENC_MODE the SENC_SDO, SENC_CLK, SENC_ENA pins for each respective channel. Reserved Reserved and always reads zero. Status Bits 000 0x00 Position Bits This bit field is used to define the number of status bits in the encoder data. The valid range of settings is 0 – 6 (000 – 110). The status bits are assumed to always follow after the position data and before the CRC. This bit field is used to define the number of position data bits or encoder resolution: Range is 12 – 40 (001100 –101000) The position bits are assumed to be in binary MSB-first format: $12 for 18-bit | $1A for 26-bit | $20 for 32-bit BiSS Data Registers The BiSS data is conveyed into 4 memory locations; Serial Encoder Data A, B, C, and D. The Serial Encoder Data A register holds the 24 bits of the encoder position data. If the data exceeds the 24 available bits in this register, the upper overflow bits are LSB justified and readable in the Serial Encoder Data B, which also holds status and error bits. Serial Encoder Data C, and D registers are reserved and always read zero. 23 TimeOut Err 22 CRC Err BiSS Data B [21:16] Status Data Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 Channel 8 [15:0] Position Data [39:24] BiSS Encoder Data A Y:$78B20 Y:$78B24 Y:$78B28 Y:$78B2C Y:$78B30 Y:$78B34 Y:$78B38 Y:$78B3C BiSS Data A [23:0] Position Data [23:0] BiSS Encoder Data B Y:$78B21 Y:$78B25 Y:$78B29 Y:$78B2D Y:$78B31 Y:$78B35 Y:$78B39 Y:$78B3D Data Registers C and D are listed here for future use and documentation purposes only. They do not pertain to the BiSS setup and always read zero. Channel 1 Channel 2 Channel 3 Channel 4 Channel 5 Channel 6 Channel 7 Channel 8 PinOuts and Software Setup BiSS Encoder Data C Y:$78B22 Y:$78B26 Y:$78B2A Y:$78B2E Y:$78B32 Y:$78B36 Y:$78B3A Y:$78B3E BiSS Encoder Data D Y:$78B23 Y:$78B27 Y:$78B28 Y:$78B2F Y:$78B33 Y:$78B37 Y:$78B38 Y:$78B3F 97 Geo Brick LV User Manual BiSS Control Registers Setup Example Channel 1 is driving an 18-bit Renishaw resolute BiSS-C encoder. The encoder requires a 1 MHz serial clock, and has 2 status bits. Global Control Register The Global Control register is a 24-bit hexadecimal word which is set up as follows: =0 Rising Edge =1 Falling Edge =0 Trigger on Phase =1 Trigger on Servo 0 clock Edge 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 1 0 1 1 Description: Bit #: $B for BiSS Typically =0 M Divisor Binary: 1 Hex: 1 0 0 N Divisor 0 6 1 0 0 0 3 Field M divisor N divisor Trigger clock Trigger Edge Trigger Delay Protocol Code Value =99 =0 =0 =0 =0 =11 0 0 0 0 0 0 Trigger Delay 0 Protocol 0 B Notes Global Control Word Hex 0x63 Hex 0x0 Trigger on Phase (recommended) Rising edge (recommended) No delay (typical) Hex 0xB, BiSS protocol $63000B Channel Control Register The Channel Control register is a 24-bit hexadecimal word set up as follows: Number Of Status Bits MCD =0 Disabled (BiSS-B only) =1 Enabled Bit #: Binary: Hex ($): 0 Senc Mode MCD CRC Mask Trigger Mode Trigger Enable Description: =0 Continuous =0 Disabled =1 One shot =1 Enabled BiSS Type =0 BiSS-C =1 BiSS-B Encoder Resolution (ST+MT) 0 Bit Length (Resolution) Status 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 2 PinOuts and Software Setup 0 0 0 1 1 0 0 0 1 1 0 1 4 9 2 98 Geo Brick LV User Manual Field CRC Mask BiSS Type Trigger Mode Trigger Enable Data Ready / Senc Mode Status Bits Protocol Bits Value =33 =0 =0 =1 =1 =2 =18 Notes Channel Control Word Hex 0x21 typical for Renishaw for BiSS-C Continuous trigger (typical) Enable $211492 Enable serial driver Binary 010 Binary 010010 Control Registers Power-On PLC The Global and Channel Control words have to be executed once on power-up //=========================== NOTES ABOUT THIS PLC EXAMPLE ================================// // This PLC example utilizes: - M5990 through M5991 // - Coordinate system 1 Timer 1 // Make sure that current and/or future configurations do not create conflicts with // these parameters. //=========================================================================================// M5990..5991->* ; Self-referenced M-Variables M5990..5991=0 ; Reset at download //========================= GLOBAL CONTROL REGISTERS ======================================// #define SSIGlobalCtrl1_4 M5990 ; Channels 1-4 BiSS global control register SSIGlobalCtrl1_4->X:$78B2F,0,24,U ; Channels 1-4 BiSS global control register address //======================== CHANNEL CONTROL REGISTERS ======================================// #define Ch1SSICtrl M5991 ; Channel 1 BiSS control register Ch1SSICtrl->X:$78B20,0,24,U ; Channel 1 BiSS control register Address //========= POWER-ON PLC EXAMPLE, GLOBAL & CHANNEL CONTROL REGISTERS ======================// Open PLC 1 Clear SSIGlobalCtrl1_4=$63000B ; Trigger at Phase, 1 MHz serial Clock (M=99, N=0) –User Input Ch1SSICtrl=$211492 ; Channel 1, BiSS-C protocol, 18-bit resolution –User Input I5111=500*8388608/I10 while(I5111>0) endw ; ½ sec delay Dis plc 1 ; Execute once on power-up or reset Close //=========================================================================================// PinOuts and Software Setup 99 Geo Brick LV User Manual Setting up SSI | EnDat | BiSS In Turbo PMAC (i.e. Brick family), the absolute serial encoder data is brought in as an unfiltered parallel Y-word into the Encoder Conversion Table (ECT) where it is processed for the PMAC to use for ongoing position in the motor servo-loop, power-on absolute position, and (power-on/on-going) phase referencing. In general, encoder data is left-shifted 5 bits in the ECT to provide fractional data. This process can cause saturation of certain registers with higher resolution absolute serial encoders, thus for this type of encoders, it is recommended to process the data as unshifted. Moreover, special considerations need to be taken in setting up commutation (for commutated motors, e.g. brushless). Details about registers’ overflow and examples can be found in the appendix section. Note The following flowchart summarizes the recommended method to use, regardless of the Multiturn (MT) data specification. It is only dependent on the Singleturn (ST) resolution (for rotary encoders) or protocol resolution (for linear scales). Technique 1 NO Start Here ST Encoder Resolution ≥ 19 bits NO ST Encoder Resolution ≥ 24 bits YES Technique 2 YES Technique 3 Technique 1 This technique places the Least Significant Bit (LSB) of the serial data in bit 5 of the result register providing the 5 bits of “non-existent” fraction. Technique 2 This technique places the LSB of the serial data in bit 0 of the result register, creating no fractional bits. It requires a dedicated Encoder Conversion Table (ECT) entry for commutation. Technique 3 This technique processes the data for position similarly to Technique 1, but it requires a dedicated ECT entry for commutation. Note Some applications may require deviating from the suggested setup methods (e.g. extremely high resolution and speed requirements). Contact Delta Tau for assistance with these special cases. PinOuts and Software Setup 100 Geo Brick LV User Manual Setup Summary Encoder Conversion Table Processing: Process Technique 1 Technique 2 Technique 3 ECT for Position From serial register A, 5-bit shift From serial register A, no shift From serial register A, 5-bit shift N/A From serial register A, 18 bits, no shift, Offset=ST-18 From serial register A, 18 bits, no shift, Offset=ST-18 ECT for Commutation ST is the Singleturn resolution (in bits) for rotary encoders. Similarly, this would be the protocol resolution (in bits) for linear scales. Note The position and velocity pointers are then assigned to the “ECT for position” result: Parameter Technique 1/2/3 Position (Ixx03) @ ECT position result Velocity (Ixx04) @ ECT position result (typically, with single source feedback) Commutation Source and Type (for commutated motors, e.g. brushless) With technique 1, if the Singleturn + Multiturn data bits fulfill 24 bits and are contiguous, then serial data register A can be used as the commutation source. Otherwise, the resulting register from the ECT for position is used for commutation (requires special settings for the commutation cycle size). With techniques 2 and 3, the feedback source for commutation should come from its dedicated ECT. Parameter Technique 1 Commutation Source (Ixx83) @ serial data register A @ ECT position result if ST+MT ≥ 24 bits if ST+MT < 24 bits Commutation Type (Ixx01) = 3 (from Y register) = 1 (from X register) if ST+MT ≥ 24 bits if ST+MT < 24 bits Note Technique 2/3 @ commutation ECT result =1 (from X register) Special considerations should be made if the Singleturn (ST) and Multiturn (MT) data bits are NOT contiguous (in consecutive fields). Contact Delta Tau for assistance with these special cases. Multiturn MT is equal to zero for encoders which do not possess Multiturn data bits. Note PinOuts and Software Setup 101 Geo Brick LV User Manual Resolution Scale Factor (SF) Parameter Resolution Scale Factor SF Where ST: RES: Encoder Type Technique 1/3 Technique 2 Rotary [counts/rev] = 2ST = 2ST-5 = 2ST/32 Linear [counts/user units] = 1/RES = 1/(32*RES) is the rotary encoder Singleturn resolution in bits is the linear scale resolution, in user units (e.g. mm) Commutation Cycle Size Parameter Motor/Encoder Ixx70 Technique 2/3 Rotary = Number of pole pairs Linear =1 Rotary Ixx71 Linear Where ST: RES: ECL: Offset: SF: Technique 1 = SF= 2ST if Ixx01=3 = 32 * SF= 32 * 2ST if Ixx01=1 = ECL * SF= ECL/RES if Ixx01=3 = 32 * ECL * SF = 32 * (ECL/RES) if Ixx01=1 = 218 = 262144 = ECL * SF / 2Offset = ECL/(RES*2Offset) is the rotary encoder Singleturn resolution in bits is the linear scale resolution, in user units (e.g. mm) is the electrical cycle length of the linear motor, same units as RES (e.g. mm) is the ECT commutation Offset, it is (=ST-18 for rotary, or =RES-18 for linear) is the encoder resolution scale factor (calculated previously) Position and Velocity Scale Factors, Position Error Limit With technique 2, and technique 3 (with encoder resolutions greater than 20 bits), it is recommended to set the position and velocity scale factors to equal 1 and widen the position error limit. Otherwise, default values should be ok for all other cases. This alleviates register saturation(s), allows for higher commanded speed settings and easier PID (position-loop) tuning. Parameter(s) Technique 1 Technique 2 Ixx08, Ixx09 = 96 =1 Ixx67 Default = 8388607 Technique 3 = 96 for ST < 20 =1 for ST ≥ 20 = Default for ST < 20 = 8388607 for ST ≥ 20 Absolute Power-On Position and Phasing Process Absolute Position Read Absolute Phasing PinOuts and Software Setup Technique 1 Technique 2 Technique 3 From serial register A, automatic settings Automatic settings, depending on ST+MT From serial register A, scaling required From ECT for Comm., automatic settings From serial register A, automatic settings From ECT for Comm., automatic settings 102 Geo Brick LV User Manual Technique 1 Example Channel 1 is driving a 25-bit (13-bit Singleturn, 12-bit Multiturn) rotary serial encoder, or a linear scale with similar protocol resolution (13 bits, 1 micron). Encoder Conversion Table - for Position (Technique 1) Conversion Type: Parallel pos from Y word with no filtering Width in Bits: Singleturn/absolute resolution in bits (e.g. 13 bits) Offset Location of LSB: leave at zero Normal Shift (5 bits to the left) Source Address: serial data register A (see table below) Remember to click on Download Entry for the changes to take effect. Channel 1 Channel 2 Channel 3 Channel 4 Source Address ( Serial Data Register A) Y:$78B20 Channel 5 Y:$78B30 Y:$78B24 Channel 6 Y:$78B34 Y:$78B28 Channel 7 Y:$78B38 Y:$78B2C Channel 8 Y:$78B3C This is a 2-line ECT entry, its equivalent script code: I8000=$278B20 I8001=$00D000 ; Unfiltered parallel pos of location Y:$78B20 ; Width and Offset. Processed result at $3502 Typically, the position and velocity pointers are set to the processed data address (e.g. $3502): I100=1 I103=$3502 I104=$3502 ; Mtr#1 Active. Remember to activate the channel to see feedback ; Mtr#1 position loop feedback address ; Mtr#1 velocity loop feedback address At this point, you should be able to move the motor/encoder shaft by hand and see ‘motor’ counts in the position window. Note PinOuts and Software Setup 103 Geo Brick LV User Manual Counts per User Units (Technique 1) With technique 1, the user should expect to see 2ST counts per revolution for rotary encoders, and 1/Resolution counts per user unit for linear scales in the motor position window. 25-bit rotary encoder (13-bit Singleturn): 213= 8,192 cts/rev 1-micron linear scale: 1/0.001= 1,000 cts/mm Examples: Absolute Power-On Position Read (Technique 1) With Technique 1, the absolute power-on read can be performed using PMAC’s automatic settings (Ixx80, Ixx10 and Ixx95). Example 1: Channel 1 driving a 25-bit (13-bit single turn, 12-bit multi-turn) rotary serial encoder: I180=2 I110=$78B20 I195=$990000 ; Absolute power-on read enabled ; Absolute power-on position address (ch1 serial data register A) ; Parallel Read, 25 bits, Signed, from Y-Register –User Input Bit 22: =1 X-Register =0 Y-Register Bit 23: =1 Signed =0 Unsigned Ixx95 Bits16-21: Number of Bits to read (Resolution 25 bits or 011001 ) Bits 0-15: reserved (always 0) Binary: 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hex($): 9 9 0 0 0 0 In this mode, PMAC reads and reports 25 bits from the consecutive serial data registers: Serial Register B (Ch1 Y:$78B21) 47 Serial Register A (Ch1 Y:$78B20) 25 bits 23 0 With the setting of Ixx80=2, the actual position is reported automatically on Power-up. Otherwise, a #1$* command is necessary to read and report the absolute position. Example 2: Channel 1 driving an 18-bit (18-bit Singleturn, No Multiturn) absolute rotary serial encoder, or a similar protocol resolution (18 bits) linear scale: I180=2 I110=$78B20 I195=$120000 ; Absolute power-on read enabled ; Absolute power-on position address (ch1 serial data register A) ; Parallel Read, 18 bits, Unsigned, from Y-Register –User Input Bit 22: =1 X-Register =0 Y-Register Bit 23: =1 Signed =0 Unsigned Ixx95 Bits16-21: Number of Bits to read (Resolution 18 bits or 010010 ) Bits 0-15: reserved (always 0) Binary: 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hex($): 1 2 0 0 0 0 PinOuts and Software Setup 104 Geo Brick LV User Manual In this mode, PMAC reads and reports 18 bits from the first serial data register: Serial Data Register B (Ch1 Y:$78B21) 47 Serial Data Register A (Ch1 Y:$78B20) 18 bits 23 0 With this setting of Ixx80=2, the actual position is reported automatically on Power-up. Otherwise, a #1$* command is necessary to read and report the absolute position. With absolute serial encoders (no multi-turn data), the power-on position format is set up for unsigned operation. Note The upper two fields in Ixx95 are the only relevant ones. Bits 0 through 15 are reserved and should always be set to 0. Note Note Some serial encoders use an external (not from the Brick) source for power. Make sure that this power is applied prior to performing an absolute read on power-up. PinOuts and Software Setup 105 Geo Brick LV User Manual Technique 2 Example Channel 1 is driving a 37-bit (25-bit Singleturn, 12-bit Multiturn) rotary serial encoder, or a linear scale with similar protocol resolution (25 bits, 10 nanometer). Encoder Conversion Table – for Position (Technique 2) Conversion Type: Parallel pos from Y word with no filtering Width in Bits: Singleturn/absolute resolution in bits (e.g. 25 bits) Offset Location of LSB: leave at zero No shifting Source Address: serial data register A (see table below) Remember to click on Download Entry for the changes to take effect. Channel 1 Channel 2 Channel 3 Channel 4 Source Address (serial data register A) Y:$78B20 Y:$78B30 Channel 5 Y:$78B24 Y:$78B34 Channel 6 Y:$78B28 Y:$78B38 Channel 7 Y:$78B2C Y:$78B3C Channel 8 This is a 2-line ECT entry, its equivalent script code: I8000=$2F8B20 I8001=$19000 ; Unfiltered parallel pos of location Y:$78B20 ; Width and Offset. Processed result at $3502 Typically, the position and velocity pointers are set to the processed data address (e.g. $3502). Also, with technique 2, it is recommended to set the position and velocity scale factors to 1 and the position error limit to its maximum value: I100=1 I103=$3502 I104=$3502 I108=1 I109=1 I167=8388607 ; ; ; ; ; ; Mtr#1 Mtr#1 Mtr#1 Mtr#1 Mtr#1 Mtr#1 PinOuts and Software Setup Active. Remember to activate the channel to see feedback position loop feedback address velocity loop feedback address position-loop scale factor velocity-loop scale factor Position Error Limit 106 Geo Brick LV User Manual At this point, you should be able to move the motor/encoder shaft by hand and see ‘motor’ counts in the position window Note Counts per User Units (Technique 2) With technique 2, the user should expect to see 2ST-5= 2ST/32 counts per revolution for rotary encoders, and 1/(32*Resolution) counts per user unit for linear scales in the motor position window. Examples: 37-bit rotary encoder (25-bit Singleturn): 225/32= 1,048,576 cts/rev 10-nanometer linear scale: 1/(32*0.000010)= 3,125 cts/mm PinOuts and Software Setup 107 Geo Brick LV User Manual Encoder Conversion Table - for Commutation (Technique 2) Commutation with Turbo PMAC does not require high resolution data. With Technique 2, it is recommended to fix it at 18 bits. This will also eliminate quantization noise. It is recommended to insert the commutation ECT entries after all of the position ECT entries have been configured. Note Assuming that eight encoders have been configured for position, the first ECT for commutation for the first motor would be at entry number nine: Conversion Type: Parallel pos from Y word with no filtering Width in Bits: 18 Offset Location of LSB: = Singleturn/protocol bits – 18 (e.g. 25-18=7) No shifting Source Address: serial data register A (same as position ECT for this motor) Remember to click on Download Entry for the changes to take effect. This is a 2-line ECT entry, its equivalent script code: I8016=$2F8B20 I8017=$12007 Note ; Unfiltered parallel pos of location Y:$78B20 –User Input ; Width and Offset. Processed result at X:$3512 –User Input Record the processed data address (e.g. $3512). This is where the commutation position address Ixx83 will be pointing to. Also, this will be used in setting up the power-on phasing routine. The commutation enable, and position address would then be: I101=1 I183=$3512 ; Mtr#1 Commutation enable, from X Register ; Mtr#1 Commutation Position Address –User Input PinOuts and Software Setup 108 Geo Brick LV User Manual Absolute Power-On Position Read (Technique 2) With technique 2, the absolute power-on position can be read directly from the serial data registers. But, proper scaling (5-bit right shift, in a PLC) is required to conform to the unshifted on-going position. Example 1: Channel 1 driving a 37-bit (25-bit single turn, 12-bit multi-turn) rotary serial encoder: I180=0 I110=$78B20 I195=$A50000 ; Absolute power-on read disabled ; Absolute power-on position address (ch1 serial data register A) ; Parallel Read, 37 bits, Signed, from Y-Register –User Input Bit 22: =1 X-Register =0 Y-Register Bit 23: =1 Signed =0 Unsigned Ixx95 Bits16-21: Number of Bits to read (Resolution 37 bits or 100101 ) Bits 0-15: reserved (always 0) Binary: 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hex($): A 5 0 0 0 0 In this mode, PMAC reads 37 bits from the consecutive serial data registers: Serial Register B (Ch1 Y:$78B21) 47 Serial Register A (Ch1 Y:$78B20) 37 bits 23 0 With the setting of Ixx80=0, the actual position is not reported automatically on power-up. It will be reported after scaling (i.e. in PLC, below). Example 2: Channel 1 driving a 25-bit (25-bit Singleturn, No Multiturn) absolute rotary serial encoder, or a similar protocol resolution (25 bits) linear scale: I180=0 I110=$78B20 I195=$190000 ; Absolute power-on read disabled ; Absolute power-on position address (ch1 serial data register A) ; Parallel Read, 25 bits, Unsigned, from Y-Register –User Input Bit 22: =1 X-Register =0 Y-Register Bit 23: =1 Signed =0 Unsigned Ixx95 Bits16-21: Number of Bits to read (Resolution 25 bits or 011001 ) Bits 0-15: reserved (always 0) Binary: 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hex($): 1 9 0 0 0 0 In this mode, PMAC reads 25 bits from the first serial data register: Serial Data Register B (Ch1 Y:$78B21) 47 Serial Data Register A (Ch1 Y:$78B20) 25 bits 23 0 With the setting of Ixx80=0, the actual position is not reported automatically on power-up. It will be reported after scaling (i.e. in PLC, below). PinOuts and Software Setup 109 Geo Brick LV User Manual With absolute serial encoders (no multi-turn data), the power-on position format is set up for unsigned operation. Note The upper two fields in Ixx95 are the only relevant ones. Bits 0 through 15 are reserved and should always be set to 0. Note Power-On Position scaling PLC example (for technique 2) M162->D:$00008B Open PLC 1 clear I5111=100*8388608/I10 CMD“#1K“ I5111=100*8388608/I10 CMD“#1$*“ I5111=100*8388608/I10 M162=M162/32 I5111=100*8388608/I10 Dis PLC 1 Close Note ; #1 Actual position (Suggested M-Variable) while(I5111>0) endw while(I5111>0) endw while(I5111>0) endw while(I5111>0) endw ; ; ; ; ; ; ; ; 100 msec delay Make sure motor(s) killed 100 msec delay Read un-scaled absolute position 100 msec delay Scale absolute position (shift right 5 bits) 100 msec delay Run once on power-up or reset Some serial encoders use an external (not from the Brick) source for power. Make sure that this power is applied prior to performing an absolute read on power-up. PinOuts and Software Setup 110 Geo Brick LV User Manual Technique 3 Example Channel 1 is driving a 32-bit (20-bit Singleturn, 12-bit Multiturn) rotary serial encoder, or a linear scale with similar protocol resolution (20 bits, 0.1 micron). Encoder Conversion Table - for Position (Technique 3) Conversion Type: Parallel pos from Y word with no filtering Width in Bits: Singleturn/absolute resolution in bits (e.g. 20 bits) Offset Location of LSB: leave at zero Normal Shift (5 bits to the left) Source Address : serial data register A (see table below) Remember to click on Download Entry for the changes to take effect. Channel 1 Channel 2 Channel 3 Channel 4 Source Address ( serial data register A) Y:$78B20 Y:$78B30 Channel 5 Y:$78B24 Y:$78B34 Channel 6 Y:$78B28 Y:$78B38 Channel 7 Y:$78B2C Y:$78B3C Channel 8 This is a 2-line ECT entry, its equivalent script code: I8000=$278B20 I8001=$014000 ; Unfiltered parallel pos of location Y:$78B20 ; Width and Offset. Processed result at $3502 Typically, the position and velocity pointers are set to the processed data address (e.g. $3502). With Singleturn or linear resolutions less than 20 bits, the position/velocity scale factors, and position error limit can be left at default values. But with resolutions of 20 bits or greater, it is recommended to set the scale factors to 1 and the position error limit to its maximum value: I100=1 I103=$3502 I104=$3502 I108=1 I109=1 I167=8388607 ; ; ; ; ; ; Mtr#1 Mtr#1 Mtr#1 Mtr#1 Mtr#1 Mtr#1 PinOuts and Software Setup Active. Remember to activate the channel to see feedback position loop feedback address velocity loop feedback address position-loop scale factor velocity-loop scale factor Position Error Limit 111 Geo Brick LV User Manual At this point, you should be able to move the motor/encoder shaft by hand and see ‘motor’ counts in the position window. Note Counts per User Units (Technique 3) With technique 3, the user should expect to see 2ST counts per revolution for rotary encoders, and 1/Resolution counts per user unit for linear scales in the motor position window. Examples: 32-bit rotary encoder (20-bit Singleturn): 220= 1,048,576 cts/rev 0.1-micron linear scale: 1/0.0001= 10,000 cts/mm PinOuts and Software Setup 112 Geo Brick LV User Manual Encoder Conversion Table - for Commutation (Technique 3) Commutation with Turbo PMAC does not require high resolution data. With Technique 3, it is recommended to fix it at 18 bits. This will also eliminate quantization noise. It is recommended to insert the commutation ECT entries after all of the position ECT entries have been configured. Note Assuming that eight encoders have been configured for position, the first ECT for commutation for the first motor would be at entry number nine: Conversion Type: Parallel pos from Y word with no filtering Width in Bits: 18 Offset Location of LSB = Singleturn/protocol bits – 18 (e.g. 20-18=2) No shifting Source Address: Serial data register A (same as position ECT for this motor) Remember to click on Download Entry for the changes to take effect. This is a 2-line ECT entry, its equivalent script code: I8016=$2F8B20 I8017=$12002 Note ; Unfiltered parallel pos of location Y:$78B20 –User Input ; Width and Offset. Processed result at X:$3512 –User Input Record the processed data address (e.g. $3512). This is where the commutation position address Ixx83 will be pointing to. Also, this will be used in setting up the power-on phasing routine. The commutation enable, and position address would then be: I101=1 I183=$3512 ; Mtr#1 Commutation enable, from X Register ; Mtr#1 Commutation Position Address –User Input PinOuts and Software Setup 113 Geo Brick LV User Manual Absolute Power-On Position Read (Technique 3) With Technique 3, the absolute power-on read can be performed using PMAC’s automatic settings (Ixx80, Ixx10 and Ixx95). Example 1: Channel 1 driving a 32-bit (20-bit single turn, 12-bit multi-turn) rotary serial encoder: I180=2 I110=$78B20 I195=$A00000 ; Absolute power-on read enabled ; Absolute power-on position address (ch1 serial data register A) ; Parallel Read, 32 bits, Signed, from Y-Register –User Input Bit 22: =1 X-Register =0 Y-Register Bit 23: =1 Signed =0 Unsigned Ixx95 Bits16-21: Number of Bits to read (Resolution 32 bits or 100000 ) Bits 0-15: reserved (always 0) Binary: 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hex($): A 0 0 0 0 0 In this mode, PMAC reads and reports 32 bits from the consecutive serial data registers: Serial Data Register B (Ch1 Y:$78B21) 47 Serial Data Register A (Ch1 Y:$78B20) 32 bits 23 0 With the setting of Ixx80=2, the actual position is reported automatically on Power-up. Otherwise, a #1$* command is necessary to read and report the absolute position. Example 2: Channel 1 driving a 20-bit (20-bit Singleturn, No Multiturn) absolute rotary serial encoder, or a similar protocol resolution (20 bits) linear scale: I180=2 I110=$78B20 I195=$140000 ; Absolute power-on read enabled ; Absolute power-on position address (ch1 serial data register A) ; Parallel Read, 20 bits, Unsigned, from Y-Register –User Input Bit 22: =1 X-Register =0 Y-Register Bit 23: =1 Signed =0 Unsigned Ixx95 Bits16-21: Number of Bits to read (Resolution 20 bits or 010100 ) Bits 0-15: reserved (always 0) Binary: 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hex($): 1 4 0 0 0 0 In this mode, PMAC reads and reports 20 bits from the first serial data register: Serial Data Register B (Ch1 Y:$78B21) 47 Serial Data Register A (Ch1 Y:$78B20) 20 bits 23 0 With the setting of Ixx80=2, the actual position is reported automatically on Power-up. Otherwise, a #1$* command is necessary to read and report the absolute position. PinOuts and Software Setup 114 Geo Brick LV User Manual With absolute serial encoders (no multi-turn data), the power-on position format is set up for unsigned operation. Note The upper two fields in Ixx95 are the only relevant ones. Bits 0 through 15 are reserved and should always be set to 0. Note Note Some serial encoders use an external (not from the Brick) source for power. Make sure that this power is applied prior to performing an absolute read on power-up. PinOuts and Software Setup 115 Geo Brick LV User Manual X1-X8: Encoder Feedback, Yaskawa Sigma II & III X1-X8: D-sub DA-15F Mating: D-sub DA-15M Pin # Symbol Function 4 EncPwr Output 5 SDI Input GND Common SDO Output 8 7 15 6 14 5 13 4 12 3 11 2 10 1 9 Notes 1 2 3 Encoder Power 5 Volts Serial Data In 6 7 8 9 10 11 12 Common Ground 13 14 Serial Data Out 15 2 10 6 8 15 7 14 2 4 6 13 5 12 4 11 3 1 3 5 9 1 If you prefer to keep the original Molex connector on the Yaskawa encoder cable, the following converter can be used to attach to the Brick D-sub DA-15F: Yaskawa Encoder Cable has FEMALE Connector by defalut PinOuts and Software Setup 116 Geo Brick LV User Manual Molex 2.00 mm (.079") Pitch Serial I/O Connector, Receptacle Kit, Wire-to-Wire. Part Number: 0542800609 Pin # Function Wire Color code 1 +5VDC RED 2 GND BLACK 3 BAT+ Orange 4 BATOrange/Black (Orange/White) 5 SDO Blue 6 SDI Blue/Black (Blue/White) All Yaskawa Sigma II & Sigma III protocols, whether incremental or absolute and regardless of the resolution, are supported. Note This option allows the Brick to connect to up to eight Yaskawa devices. Setting up the Yaskawa Sigma interface correctly requires the programming of two essential control registers: Global Control Registers Channel Control Registers The resulting data is found in: Yaskawa Data Registers PinOuts and Software Setup 117 Geo Brick LV User Manual Global Control Registers X:$78BnF (default value: $002003) where n=2 for axes 1-4 n=3 for axes 5-8 Global Control Register X:$78B2F X:$78B3F Axes 1-4 Axes 5-8 With the Yaskawa option, the Global Control Register is pre-set and need not be changed. Note 0 0 0 [23-16] [15-12] M Divisor N Divisor 0 0 Bit 0 0 0 0 0 R/W 0x00 [15:12] R/W 0x0 [11:10] R 00 [09] R/W 0 [08] R/W 0 [07:04] R/W 0x0 [03:00] R 0 0 0 Type Default [23:16] 0 Name M_Divisor 11 10 Reserved 0 0 0 9 Trig. Clock 0 0 8 Trig. Edge 0 7 6 5 4 Trigger Delay 0 0 0 0 0 3 2 1 0 Protocol Code 0 1 1 0 6 Description Intermediate clock frequency for SER_Clock. The intermediate clock is generated from a (M+1) divider clocked at 100 MHz. Final clock frequency for SER_Clock. The final clock is N generated from a 2 divider clocked by the intermediate clock. Reserved Reserved and always reads zero. Trigger clock select for initiating serial encoder communications: TriggerClock 0= PhaseClock 1= ServoClock Active clock edge select for the trigger clock: TriggerEdge 0= rising edge 1= falling edge Trigger delay program relative to the active edge of the TriggerDelay trigger clock. Units are in increments of 20 usec. This read-only bit field is used to read the serial interface protocol supported by the FPGA. ProtocolCode A value of $5 defines this protocol as Yaskawa Sigma I. A value of $6 defines this protocol as Yaskawa Sigma II. PinOuts and Software Setup N_Divisor 118 Geo Brick LV User Manual Channel Control Registers X:$78Bn0, X:$78Bn4, X:$78Bn8, X:$78BnC Channel 1 Channel 2 Channel 3 Channel 4 where: n=2 for axes 1-4 n=3 for axes 5-8 X:$78B20 X:$78B24 X:$78B28 X:$78B2C Channel 5 Channel 6 Channel 7 Channel 8 X:$78B20 X:$78B34 X:$78B38 X:$78B3C Bits 10, 12, and 13 are the only fields to be configured in the Channel Control Registers with the Yaskawa option. The rest is protocol information. This has to be done in a startup PLC to execute once on power up. [23:14] 13 Trig. Mode Reserved Bit [23:14] Type Default R 0x000 R/W 0 [12] R/W 0 [11] R/W 0 R 0 W 0 R 0x0 [13] [10] [09:00] 12 Trig. Enable Name 11 10 RxData Ready/ SENC [9:0] Reserved Description Reserved and always reads zero. Trigger Mode to initiate communication: 0= continuous trigger Trigger Mode 1= one-shot trigger All triggers occur at the defined Phase/Servo clock edge and delay setting. See Global Control register for these settings. Enable trigger for serial encoder communications: 0= disabled Trigger 1= enabled Enable This bit must be set for either trigger mode. If the Trigger Mode bit is set for one-shot mode, the hardware will automatically clear this bit after the trigger occurs. Reserved Reserved and always reads zero. This read-only bit provides the received data status. It is low while the interface logic is communicating (busy) with the RxData Ready serial encoder. It is high when all the data has been received and processed. This write-only bit is used to enable the output drivers for the SENC_SDO, SENC_CLK, SENC_ENA pins for each SENC_MODE respective channel. It also directly drives the respective SENC_MODE pin for each channel. Reserved Reserved and always reads zero. PinOuts and Software Setup Reserved 119 Geo Brick LV User Manual Yaskawa Feedback Channel Control Power-On Example PLC (Motors 1-8) This code statement can be added to your existing initialization PLC. End Gat Del Gat Close Open PLC 1 clear CMD"WX:$78B20,$1400" CMD"WX:$78B24,$1400" CMD"WX:$78B28,$1400" CMD"WX:$78B2C,$1400" CMD"WX:$78B30,$1400" CMD"WX:$78B34,$1400" CMD"WX:$78B38,$1400" CMD"WX:$78B3C,$1400" Disable plc 1 Close Yaskawa Data Registers Channel 1 Channel 2 Channel 3 Channel 4 PinOuts and Software Setup Yaskawa Data Registers Y:$78B20 Channel 5 Y:$78B24 Channel 6 Y:$78B28 Channel 7 Y:$78B2C Channel 8 Y:$78B20 Y:$78B34 Y:$78B38 Y:$78B3C 120 Geo Brick LV User Manual Yaskawa Sigma II 16-Bit Absolute Encoder Y:$78B21 [23-12] [11-0] [23-20] Multi-Turn Position (16-bits) Channel 1 Channel 2 Channel 3 Channel 4 Y:$78B20 [19-4] Absolute Single Turn Data (16-bits) Yaskawa Data Registers Y:$78B20 Channel 5 Y:$78B24 Channel 6 Y:$78B28 Channel 7 Y:$78B2C Channel 8 [3:0] Y:$78B30 Y:$78B34 Y:$78B38 Y:$78B3C The on-going servo and commutation position data is setup using a 2-line Entry in the Encoder Conversion Table. The first line represents a Parallel Y-Word with no filtering ($2) from the corresponding Yaskawa data register/channel. The second line represents the width of the data to be read and bit location of the LSB of the data in the source word. Channel 1, Yaskawa Sigma II 16-bit Absolute Encoder Setup Example Encoder Conversion Table Setup (Motors 1-8) The ECT automatic entry is equivalent to: I8000=$278B20 I8001=$020004 ; Entry 1 Unfiltered parallel pos of location Y:$78B20 ; Width and Bias, total of 32-bits LSB starting at bit#4 I8002=$278B24 I8003=$020004 ; Entry 2 Unfiltered parallel pos of location Y:$78B24 ; Width and Bias, total of 32-bits LSB starting at bit#4 I8004=$278B28 I8005=$020004 I8006=$278B2C ; Entry 3 Unfiltered parallel pos of location Y:$78B28 ; Width and Bias, total of 32-bits LSB starting at bit#4 ; Entry 4 Unfiltered parallel pos of location Y:$78B2C PinOuts and Software Setup 121 Geo Brick LV User Manual I8007=$020004 ; Width and Bias, total of 32-bits LSB starting at bit#4 I8008=$278B30 I8009=$020004 ; Entry 5 Unfiltered parallel pos of location Y:$78B30 ; Width and Bias, total of 32-bits LSB starting at bit#4 I8010=$278B34 I8011=$020004 ; Entry 6 Unfiltered parallel pos of location Y:$78B34 ; Width and Bias, total of 32-bits LSB starting at bit#4 I8012=$278B38 I8013=$020004 ; Entry 7 Unfiltered parallel pos of location Y:$78B38 ; Width and Bias, total of 32-bits LSB starting at bit#4 I8014=$278B3C I8015=$020004 ; Entry 8 Unfiltered parallel pos of location Y:$78B3C ; Width and Bias, total of 32-bits LSB starting at bit#4 Position (Ixx03) and Velocity (Ixx04) Pointers I103=$3502 I104=$3502 I203=$3504 I204=$3504 I303=$3506 I304=$3506 I403=$3508 I404=$3508 I503=$350A I504=$350A I603=$350C I604=$350C I703=$350E I704=$350E I803=$3510 I804=$3510 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed data data data data data data data data data data data data data data data data Motor Activation I100,8,100=1 ; Motors 1-8 Activated Note At this point of the setup process, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window. PinOuts and Software Setup 122 Geo Brick LV User Manual Absolute Power-On Position Read (Yaskawa 16-bit) Channel 1 example PLC, 16-bit Absolute Sigma II Encoder End Gat Del Gat Close #define #define #define #define STD0_15 MTD0_3 MTD4_15 MTD0_15 M7000 M7001 M7002 M7003 ; ; ; ; Single-turn Data 0-15 (16-bits) Multi-Turn Data 0-3 (4-bits) Multi-Turn Data 4-15 (12-bits) Multi-Turn Data 0-15 (16-bits) STD0_15->Y:$78B20,4,16 MTD0_3->Y:$78B20,20,4 MTD4_15->Y:$78B21,0,12 MTD0_15->* #define Mtr1ActPos M162 Mtr1ActPos->D:$00008B ; #1 Actual position (1/[Ixx08*32] cts) Open plc 1 clear MTD0_15 = MTD4_15 * $10 + MTD0_3 If (MTD0_15>$7FFF) MTD0_15 = (MTD0_15^$FFFF + 1)*-1 If (STD0_15 !=0) STD0_15 = (STD0_15^$FFFF + 1)*-1 Endif Endif Mtr1ActPos = ((MTD0_15 * $10000)+ STD0_15) * I108 * 32 disable plc 1 close PinOuts and Software Setup 123 Geo Brick LV User Manual Yaskawa Sigma II 17-Bit Absolute Encoder Y:$78B21 [23-13] [12-0] [23-21] Multi-Turn Position (16-bits) Channel 1 Channel 2 Channel 3 Channel 4 Y:$78B20 [20-4] Absolute Single Turn Data (17-bits) Yaskawa Data Registers Y:$78B20 Channel 5 Y:$78B24 Channel 6 Y:$78B28 Channel 7 Y:$78B2C Channel 8 [3:0] Y:$78B30 Y:$78B34 Y:$78B38 Y:$78B3C The on-going servo and commutation position data is setup using a 2-line Entry in the Encoder Conversion Table. The first line represents a Parallel Y-Word with no filtering ($2) from the corresponding Yaskawa data register/channel. The second line represents the width of the data to be read and bit location of the LSB of the data in the source word. Channel 1, Yaskawa Sigma II 17-bit Absolute Encoder Setup Example PinOuts and Software Setup 124 Geo Brick LV User Manual Encoder Conversion Table Setup (Motors 1-8) The ECT automatic entry is equivalent to: I8000=$278B20 I8001=$021004 ; Entry 1 Unfiltered parallel pos of location Y:$78B20 ; Width and Bias, total of 33-bits LSB starting at bit#4 I8002=$278B24 I8003=$021004 ; Entry 2 Unfiltered parallel pos of location Y:$78B24 ; Width and Bias, total of 33-bits LSB starting at bit#4 I8004=$278B28 I8005=$021004 ; Entry 3 Unfiltered parallel pos of location Y:$78B28 ; Width and Bias, total of 33-bits LSB starting at bit#4 I8006=$278B2C I8007=$021004 ; Entry 4 Unfiltered parallel pos of location Y:$78B2C ; Width and Bias, total of 33-bits LSB starting at bit#4 I8008=$278B30 I8009=$021004 ; Entry 5 Unfiltered parallel pos of location Y:$78B30 ; Width and Bias, total of 33-bits LSB starting at bit#4 I8010=$278B34 I8011=$021004 ; Entry 6 Unfiltered parallel pos of location Y:$78B34 ; Width and Bias, total of 33-bits LSB starting at bit#4 I8012=$278B38 I8013=$021004 ; Entry 7 Unfiltered parallel pos of location Y:$78B38 ; Width and Bias, total of 33-bits LSB starting at bit#4 I8014=$278B3C I8015=$021004 ; Entry 8 Unfiltered parallel pos of location Y:$78B3C ; Width and Bias, total of 33-bits LSB starting at bit#4 Position (Ixx03) and Velocity (Ixx04) Pointers I103=$3502 I104=$3502 I203=$3504 I204=$3504 I303=$3506 I304=$3506 I403=$3508 I404=$3508 I503=$350A I504=$350A I603=$350C I604=$350C I703=$350E I704=$350E I803=$3510 I804=$3510 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed data data data data data data data data data data data data data data data data Motor Activation I100,8,100=1 ; Motors 1-8 Activated Note At this point of the setup process, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window. PinOuts and Software Setup 125 Geo Brick LV User Manual Absolute Power-On Position Read (Yaskawa 17-bit) Channel 1 example PLC, 17-bit Absolute Sigma II Encoder End Gat Del Gat Close #define #define #define #define FirstWord SecondWord STD0_16 MTD0_15 M7000 M7001 M7002 M7003 ; ; ; ; Yaskawa Data Register1, 1st word Yaskawa Data Register1, 2nd word Single-Turn Data 0-16 (17-bits) Multi-Turn Data 0-15 (16-bits) FirstWord->Y:$78B20,0,24 SecondWord->Y:$78B21,0,4 STD0_16->* MTD0_15->* #define Mtr1ActPos M162 Mtr1ActPos->D:$00008B ; #1 Actual position (1/[Ixx08*32] cts) open plc 1 clear MTD0_15 = (SecondWord & $1FFF) * $8 + int (FirstWord / 2097152) STD0_16 = int ((FirstWord & $1FFFF0) / 16) If (MTD0_15>$7FFF) MTD0_15 = (MTD0_15^$FFFF + 1)*-1 If (STD0_16 !=0) STD0_16 = (STD0_16^$1FFFF + 1)*-1 Endif Endif Mtr1ActPos = ((MTD0_15 * $20000)+ STD0_16) * I108 * 32 disable plc 1 close PinOuts and Software Setup 126 Geo Brick LV User Manual Yaskawa Sigma III 20-Bit Absolute Encoder [23-16] Y:$78B21 [15-0] Multi-Turn Position (16-bits) Channel 1 Channel 2 Channel 3 Channel 4 Y:$78B20 [23-4] Absolute Single Turn Data (20-bits) Yaskawa Data Registers Y:$78B20 Channel 5 Y:$78B24 Channel 6 Y:$78B28 Channel 7 Y:$78B2C Channel 8 [3:0] Y:$78B30 Y:$78B34 Y:$78B38 Y:$78B3C The on-going servo and commutation position data is setup using a 2-line Entry in the Encoder Conversion Table. The first line represents a Parallel Y-Word with no filtering ($2) from the corresponding Yaskawa data register/channel. The second line represents the width of the data to be read and bit location of the LSB of the data in the source word. Channel 1, Yaskawa Sigma III 20-bit Absolute Encoder Setup Example PinOuts and Software Setup 127 Geo Brick LV User Manual Encoder Conversion Table Setup (Motors 1-8) The ECT automatic entry is equivalent to: I8000=$278B20 I8001=$024004 ; Entry 1 Unfiltered parallel pos of location Y:$78B20 ; Width and Bias, total of 36-bits LSB starting at bit#4 I8002=$278B24 I8003=$024004 ; Entry 2 Unfiltered parallel pos of location Y:$78B24 ; Width and Bias, total of 36-bits LSB starting at bit#4 I8004=$278B28 I8005=$024004 ; Entry 3 Unfiltered parallel pos of location Y:$78B28 ; Width and Bias, total of 36-bits LSB starting at bit#4 I8006=$278B2C I8007=$024004 ; Entry 4 Unfiltered parallel pos of location Y:$78B2C ; Width and Bias, total of 36-bits LSB starting at bit#4 I8008=$278B30 I8009=$024004 ; Entry 5 Unfiltered parallel pos of location Y:$78B30 ; Width and Bias, total of 36-bits LSB starting at bit#4 I8010=$278B34 I8011=$024004 ; Entry 6 Unfiltered parallel pos of location Y:$78B34 ; Width and Bias, total of 36-bits LSB starting at bit#4 I8012=$278B38 I8013=$024004 ; Entry 7 Unfiltered parallel pos of location Y:$78B38 ; Width and Bias, total of 36-bits LSB starting at bit#4 I8014=$278B3C I8015=$024004 ; Entry 8 Unfiltered parallel pos of location Y:$78B3C ; Width and Bias, total of 36-bits LSB starting at bit#4 Position (Ixx03) and Velocity (Ixx04) Pointers I103=$3502 I104=$3502 I203=$3504 I204=$3504 I303=$3506 I304=$3506 I403=$3508 I404=$3508 I503=$350A I504=$350A I603=$350C I604=$350C I703=$350E I704=$350E I803=$3510 I804=$3510 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed data data data data data data data data data data data data data data data data Motor Activation I100,8,100=1 ; Motors 1-8 Activated Note At this point of the setup process, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window. PinOuts and Software Setup 128 Geo Brick LV User Manual Absolute Power-On Position Read (Yaskawa 20-bit) Channel 1 example PLC, 20-bit Absolute Sigma III Encoder End Gat Del Gat Close #define #define #define #define FirstWord SecondWord STD0_19 MTD0_15 M1000 M1001 M1002 M1003 ; ; ; ; Yaskawa Data Register1, 1st word Yaskawa Data Register1, 2nd word Single-Turn Data 0-19 (20-bits) Multi-Turn Data 0-15 (16-bits) FirstWord->Y:$78B20,0,24 SecondWord->Y:$78B21,0,4 STD0_19->* MTD0_15->* #define Mtr1ActPos M162 Mtr1ActPos->D:$00008B ; #1 Actual position (1/[Ixx08*32] cts) open plc 1 clear MTD0_15 = (SecondWord & $FFFF) STD0_19 = int ((FirstWord & $FFFFF0) / 16) If (MTD0_15>$7FFF) MTD0_15 = (MTD0_15^$FFFF + 1)*-1 If (STD0_19 !=0) STD0_19 = (STD0_19^$FFFFF + 1)*-1 Endif Endif Mtr1ActPos = ((MTD0_15 * $100000)+ STD0_19) * I108 * 32 disable plc 1 close PinOuts and Software Setup 129 Geo Brick LV User Manual Yaskawa Sigma II 13-Bit Incremental Encoder [23-11] Y:$78B21 [10-0] 23 Incremental Compensation (11-bits) Channel 1 Channel 2 Channel 3 Channel 4 Y:$78B20 [22-11] [10:4] Incremental Position in Single Turn (13-bits) Yaskawa Data Registers Y:$78B20 Channel 5 Y:$78B24 Channel 6 Y:$78B28 Channel 7 Y:$78B2C Channel 8 3 2 1 0 U V W Z Y:$78B30 Y:$78B34 Y:$78B38 Y:$78B3C The on-going servo and commutation position data is setup using a 2-line Entry in the Encoder Conversion Table. The first line represents a Parallel Y-Word with no filtering ($2) from the corresponding Yaskawa data register/channel. The second line represents the width of the data to be read and bit location of the LSB of the data in the source word. Channel 1, Yaskawa Sigma II 13-bit Incremental Encoder Setup Example PinOuts and Software Setup 130 Geo Brick LV User Manual Encoder Conversion Table Setup (Motors 1-8) The ECT automatic entry is equivalent to: I8000=$278B20 I8001=$00D006 ; Entry 1 Unfiltered parallel pos of location Y:$78B20 ; Width and Bias, total of 13-bits LSB starting at bit#6 I8002=$278B24 I8003=$00D006 ; Entry 2 Unfiltered parallel pos of location Y:$78B24 ; Width and Bias, total of 13-bits LSB starting at bit#6 I8004=$278B28 I8005=$00D006 ; Entry 3 Unfiltered parallel pos of location Y:$78B28 ; Width and Bias, total of 13-bits LSB starting at bit#6 I8006=$278B2C I8007=$00D006 ; Entry 4 Unfiltered parallel pos of location Y:$78B2C ; Width and Bias, total of 13-bits LSB starting at bit#6 I8008=$278B30 I8009=$00D006 ; Entry 5 Unfiltered parallel pos of location Y:$78B30 ; Width and Bias, total of 13-bits LSB starting at bit#6 I8010=$278B34 I8011=$00D006 ; Entry 6 Unfiltered parallel pos of location Y:$78B34 ; Width and Bias, total of 13-bits LSB starting at bit#6 I8012=$278B38 I8013=$00D006 ; Entry 7 Unfiltered parallel pos of location Y:$78B38 ; Width and Bias, total of 13-bits LSB starting at bit#6 I8014=$278B3C I8015=$00D006 ; Entry 8 Unfiltered parallel pos of location Y:$78B3C ; Width and Bias, total of 13-bits LSB starting at bit#6 Position (Ixx03) and Velocity (Ixx04) Pointers I103=$3502 I104=$3502 I203=$3504 I204=$3504 I303=$3506 I304=$3506 I403=$3508 I404=$3508 I503=$350A I504=$350A I603=$350C I604=$350C I703=$350E I704=$350E I803=$3510 I804=$3510 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed data data data data data data data data data data data data data data data data Motor Activation I100,8,100=1 ; Motors 1-8 Activated Note At this point of the setup process, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window. PinOuts and Software Setup 131 Geo Brick LV User Manual Yaskawa Sigma II 17-Bit Incremental Encoder [23-11] Y:$78B21 [10-0] 23 Incremental Compensation (11-bits) Channel 1 Channel 2 Channel 3 Channel 4 Y:$78B20 [22-6] [5:4] Incremental Position in Single Turn (17-bits) Yaskawa Data Registers Y:$78B20 Channel 5 Y:$78B24 Channel 6 Y:$78B28 Channel 7 Y:$78B2C Channel 8 3 2 1 0 U V W Z Y:$78B30 Y:$78B34 Y:$78B38 Y:$78B3C The on-going servo and commutation position data is setup using a 2-line Entry in the Encoder Conversion Table. The first line represents a Parallel Y-Word with no filtering ($2) from the corresponding Yaskawa data register/channel. The second line represents the width of the data to be read and bit location of the LSB of the data in the source word. Channel 1, Yaskawa Sigma II 17-bit Incremental Encoder Setup Example PinOuts and Software Setup 132 Geo Brick LV User Manual Encoder Conversion Table Setup (Motors 1-8) The ECT automatic entry is equivalent to: I8000=$278B20 I8001=$011006 ; Entry 1 Unfiltered parallel pos of location Y:$78B20 ; Width and Bias, total of 17-bits LSB starting at bit#6 I8002=$278B24 I8003=$011006 ; Entry 2 Unfiltered parallel pos of location Y:$78B24 ; Width and Bias, total of 17-bits LSB starting at bit#6 I8004=$278B28 I8005=$011006 ; Entry 3 Unfiltered parallel pos of location Y:$78B28 ; Width and Bias, total of 17-bits LSB starting at bit#6 I8006=$278B2C I8007=$011006 ; Entry 4 Unfiltered parallel pos of location Y:$78B2C ; Width and Bias, total of 17-bits LSB starting at bit#6 I8008=$278B30 I8009=$011006 ; Entry 5 Unfiltered parallel pos of location Y:$78B30 ; Width and Bias, total of 17-bits LSB starting at bit#6 I8010=$278B34 I8011=$011006 ; Entry 6 Unfiltered parallel pos of location Y:$78B34 ; Width and Bias, total of 17-bits LSB starting at bit#6 I8012=$278B38 I8013=$011006 ; Entry 7 Unfiltered parallel pos of location Y:$78B38 ; Width and Bias, total of 17-bits LSB starting at bit#6 I8014=$278B3C I8015=$011006 ; Entry 8 Unfiltered parallel pos of location Y:$78B3C ; Width and Bias, total of 17-bits LSB starting at bit#6 Position (Ixx03) and Velocity (Ixx04) Pointers I103=$3502 I104=$3502 I203=$3504 I204=$3504 I303=$3506 I304=$3506 I403=$3508 I404=$3508 I503=$350A I504=$350A I603=$350C I604=$350C I703=$350E I704=$350E I803=$3510 I804=$3510 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity Position Velocity feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback feedback address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, address, ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT ECT processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed processed data data data data data data data data data data data data data data data data Motor Activation I100,8,100=1 ; Motors 1-8 Activated Note At this point of the setup process, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window. PinOuts and Software Setup 133 Geo Brick LV User Manual Yaskawa Incremental Encoder Alarm Codes Yaskawa Incremental encoder Alarm Registers Channel 1 Y:$78B22,8,8 Channel 5 Y:$78B32,8,8 Channel 2 Y:$78B26,8,8 Channel 6 Y:$78B36,8,8 Channel 3 Y:$78B2A,8,8 Channel 7 Y:$78B3A,8,8 Channel 4 Y:$78B2E,8,8 Channel 8 Y:$78B3E,8,8 Bit# Error Name Type 8 Fixed at “1” - 9 Encoder Error 10 Fixed at “0” 11 Position Error 12 13 Fixed at “0” Fixed at “0” Origin not passed Warning flag Fixed at “0” 14 15 PinOuts and Software Setup Alarm Alarm Alarm Type Session Flag Session Flag - Clear Action Power cycle Power cycle - - - Notes Encoder Error Possible error in position or Hall sensor The origin has not been passed in this session yet Set at zero 134 Geo Brick LV User Manual Homing with Yaskawa Incremental Encoders Hardware capture is not available with serial data encoders, software capture (Ixx97=1) is required. Setting Ixx97 to 1 tells Turbo PMAC to use the register whose address is specified by Ixx03 for the trigger position. The disadvantage is that the software capture can have up to 1 background cycle delay (typically 2-3 msec), which limits the accuracy of the capture. To alleviate homing inaccuracies with serial encoders, it is recommended to perform home search moves at low speeds. Homing to a flag (i.e. Home, Overtravel Limit, and User) is done using the traditional capture parameters I7mn2, and I7mn3. Remember to (temporarily) disable the end of travel limit use (bit#17 of Ixx24) when homing to one of the hardware limit flags, and re-enabling it when homing is finished. Example: Homing channel 1 to the negative limit (high true) I124=I124|$20001 I197=1 I7012=2 I7012=2 ; ; ; ; Flag Mode, Disable hardware over travel limits channel 1 position capture, software Channel 1 capture control, capture on flag high Channel 1 capture flag select, minus or negative end limit Homing to the index pulse, normally performed after referencing to a hardware flag, is an internal function of the Yaskawa encoder. Bit 14 of the alarm code indicates whether the index has been detected since last power-up. The motor should be jogged until bit 14 is low, the encoder will then place the “incremental compensation” value in the lower 11 bits of the second data word. Subtracting the “incremental compensation” from the “incremental position” results into the true position of the index. Motor 1 index detection example plc: #define FirstWord #define SecondWord #define OriginNotPassed M7025 M7026 M7027 FirstWord->Y:$78B20,0,24 SecondWord->Y:$78B21,0,24 OriginNotPassed->Y:$78B22,14 #define Mtr1ActPos Mtr1ActPos->D:$00008B M162 ; Suggested M-Variable Definition, Motor 1 Actual Position ; #1 Actual position (1/[Ixx08*32] cts) open plc 1 clear if (OriginNotPassed = 1) cmd "#1j+" ; while (OriginNotPassed = 1); endwhile cmd "#1k" ; endif while (SecondWord & $8FF = 0) ; endwhile Mtr1ActPos = int (((FirstWord & disable plc 1 close PinOuts and Software Setup Jog in positive direction looking for index wait until index is detected Kill Motor Incremental Compensation takes up to 2 msec to execute $8FFFC0) / $40)-((SecondWord & $8FF) * $40))* I108 * 32 135 Geo Brick LV User Manual X9-X10: Analog Inputs/Outputs 5 X9-X10: D-Sub DE-9F Mating: D-Sub DE-9M Pin # 1 2 3 4 5 6 7 8 9 Symbol AGND ADC+ DAC+ BR-NC AMPFLT ADCDACBRCOM BR-NO Function Ground Input Output Output Input Input Output Common Output 4 9 3 8 1 2 7 6 Notes Analog Ground 16-bit Analog Input, channel 5/6+ 12-bit filtered PWM analog output, channel 5/6+ Brake 5-6 / Relay Normally Closed Amplifier fault Input 5/6 16-bit Analog Input, channel 5/612-bit filtered PWM analog output, channel 5/6Brake 5-6 / Relay Common Brake 5-6 / Relay Normally Open X11-X12: Analog Inputs/Outputs X11-X12: D-Sub DE-9F Mating: D-Sub DE-9M Pin # 1 2 3 4 5 6 7 8 9 Symbol AGND ADC+ DAC+ BR-NC AMPFLT ADCDACBRCOM BR-NO Function Ground Input Output Output Input Input Output Common Output PinOuts and Software Setup 5 4 9 3 8 1 2 7 6 Notes Analog Ground 16-bit Analog Input, channel 7/8+ 12-bit filtered PWM analog output, channel 7/8+ Brake 3-4 / Relay Normally Closed Amplifier fault Input 7/8 16-bit Analog Input, channel 7/812-bit filtered PWM analog output, channel 7/8Brake 3-4/ Relay Common Brake 3-4 / Relay Normally Open 136 Geo Brick LV User Manual Setting up the Analog (ADC) Inputs Differential Analog Input Signal 1 AGND ADC+ 5 9 5 ±10VDC Input Signal 9 ±10VDC Input Signal 4 ADC- 4 8 8 3 3 ADC+ 7 7 2 2 6 6 1 AGND Single Ended Analog Input Signal For single-ended connections, tie the negative ADC pin to ground. Note The analog inputs use the ADS8321 Converter device Note Note Full (16-bit) resolution is available for bipolar signals only. Half of the range of the full resolution is used for unipolar (0-5V or 0-10V) signals. Analog Inputs Suggested M-Variables I7106=$1FFFFF ; Servo IC 1 ADC Strobe Word M505->Y:$078105,8,16,S M605->Y:$07810D,8,16,S M705->Y:$078115,8,16,S M805->Y:$07811D,8,16,S ; ; ; ; ADC ADC ADC ADC Input Input Input Input reading reading reading reading (ADC5A), (ADC6A), (ADC7A), (ADC8A), connector connector connector connector X9 X10 X11 X12 Testing the Analog Inputs The software counts range (reading) is -216/2 to 216/2, so that: Single-Ended Signal [VDC] -10 0 Bipolar Unipolar 10 PinOuts and Software Setup Differential Signal [VDC] -5 0 5 Software Counts -32768 0 +32768 137 Geo Brick LV User Manual Setting up the Analog (DAC) Outputs 8 5 9 4 8 5 9 4 DACAnalog Device 3 DAC+ Analog Device 3 DAC+ 7 2 7 2 6 AGND 6 AGND 1 Single Ended DAC Output Signal 1 Differential DAC Output Signal The analog outputs on X9 through X12 are (12-bit) filtered PWM signals, therefore a PWM frequency in the range of 30-40 KHz and a PWM deadtime of zero are suggested for a good quality analog output signal (minimized ripple). A fully populated Brick can have one of three gates generating the clocks: Servo IC 0 (I7000’s) Servo IC 1 (I7100’s) MACRO IC 0 (I6800’s) I19 specifies which gate is the clock source master. I19 is equal to 7007 by default indicating that Servo IC 0 is the master gate. However, the analog outputs on X9 through X12 are generated out of Servo IC1. The relationship between the PWM clock frequency of Servo IC 1 (recipient) and the master gate (generator), typically Servo IC 0, should always be respected in such a way that: Where n is an integer Example: With Servo IC 0 sourcing the clock at its’ recommended settings (20 KHz PWM), the following are suggested MACRO IC 0 clock settings which would provide a good analog output signal: Servo IC 0 Clock Settings Resulting Frequencies KHz I7000=1473 I7001=0 I7002=7 I10=1677653 PWM PHASE SERVO 20 40 5 Servo IC 1 Clock Settings I7100=735 I7101=3 I7102=3 I7104=0 Resulting Frequencies KHz PWM PHASE SERVO PWMDeadtime 40 20 5 0 Note that n=2 in this case For Help with clock calculations, download the Delta Tau Calculator: DT Calculator Forum Link PinOuts and Software Setup 138 Geo Brick LV User Manual Note These Servo IC 1 clock settings are optimized for a good quality analog output signal. If any one of axes 5-8 is used for direct PWM control then the analog output signal quality should be compromised with a much lower PWM frequency, or not used at all. Analog Outputs Suggested M-Variables: // De-activate Motors 5-8 to write directly to the analog outputs I500,4,100=0 ; De-activate channels 5-8 to use direct write I569,4,100=816 ; Set Output Limit --User Input // Analog Outputs: M502->Y:$078102,8,16,S M602->Y:$07810A,8,16,S M702->Y:$078112,8,16,S M802->Y:$07811A,8,16,S ; ; ; ; Analog Analog Analog Analog DAC DAC DAC DAC Output Output Output Output (DAC5), (DAC6), (DAC7), (DAC8), Connector Connector Connector Connector X9 X10 X11 X12 Testing the Analog Outputs With the setting of I7100=735 (per the above example), writing directly to the assigned M-variable (i.e. Mxx02) should produce the following voltage output: Mxx02 -735 -368 0 368 735 Single Ended [VDC] -10 -5 0 +5 +10 Differential [VDC] -20 -10 0 +10 +20 The output voltage is measured between AGND and DAC+ for single-ended operation and between DAC- and DAC+ for differential operation. Note Writing values greater than I7100 (i.e. 735) in Mx02 will saturate the output to 10, or 20 volts in single-ended or differential mode respectively. MACRO connectivity provides more analog output options, e.g. ACC24M2A. Note PinOuts and Software Setup 139 Geo Brick LV User Manual Setting up the General Purpose Relay, Brake This option provides either a general purpose relay (which can be toggled in software) OR a dedicated brake relay output tied to its’ corresponding channel amplifier-enable line. This option is built to order and is jumper configurable at the factory (E6, E7, E8 and E9). The brake relay is commonly used in synchronizing (in hardware) external events such as automatically releasing a motor brake upon enabling it (i.e. vertical axis). In this mode, the general purpose relay has no use, and the related registers (suggested M-variables) are meaningless. ! Caution This option utilizes the Omron G6S-2F relay, which is rated to up to 220VAC. However, it is advised to use an external relay for AC operations, and limit the usage for this connection to up to 30VDC at 2 amperes. The brake output can be either: High true using the normally open contact (pin #9) Low true using the normally closed contact (pin #4) Also, it can be either sourcing or sinking depending on the wiring scheme. The following table summarizes the logic of operation: Operation Command From Geo Brick LV Contact between pins #8 and #9 Contact between pins #8 and #4 Brake Amp. disabled (killed) Amp. Enabled (open/closed loop) Open Closed Closed Open GP Relay M-variable = 0 M-variable = 1 Open Closed Closed Open PinOuts and Software Setup 140 Geo Brick LV User Manual High True Brake Output Sourcing Sinking 6 7 2 8 9 4 5 5 9 4 8 3 Logic device / BRAKE RET Brake BRAKE 3 BRAKE Logic device / Brake BRAKE RET 7 2 6 1 DC Power Supply COM 12-24V 1 DC Power Supply 12-24VDC COM Low True Brake Output Sourcing Sinking DC Power Supply 12-24VDC COM 7 5 5 9 9 4 4 8 8 3 7 Logic device / BRAKE RET Brake BRAKE 3 BRAKE Logic device / Brake BRAKE RET 2 2 6 6 1 1 DC Power Supply COM 12-24V The brake relays on X9, X10, X11, and X12 are tied to the amplifier enable signals of axes 5, 6, 3, and 4 respectively. Note General Purpose Relay Suggested M-Variables // General purpose relay Outputs: M5014->Y:$078800,8,1 ; General M6014->Y:$078801,8,1 ; General M7014->Y:$78803,8,1 ; General M8014->Y:$78804,8,1 ; General PinOuts and Software Setup purpose purpose purpose purpose relay relay relay relay output, output, output, output, X9 X10 X11 X12 141 Geo Brick LV User Manual Setting up the External Amplifier Fault Input The amplifier fault signal is a bidirectional single-ended input. Its’ minus end is tied internally to the brake/relay common (pin #8) which dictates how the amplifier fault input should be connected. If the amplifier fault signal is not used, it can be treated and used as a general purpose +12~24V input by setting bit 20 of Ixx24 to 1. Note The amplifier fault signal polarity can be changed in software with bit 23 of Ixx24; =1 for High True, =0 for Low True. Note If the brake/relay option is in use (otherwise, whichever scheme desirable): If pin#8 is wired to common ground, then use the sourcing scheme If pin#8 is wired to 24V, then use the sinking scheme Sinking 7 12-24V 4 5 9 9 4 5 12-24V 8 3 External AFAULT RET Amplifier AFAULT 8 3 7 External AFAULT RET Amplifier AFAULT 2 2 6 6 1 1 Sourcing External Amplifier Fault Input, Suggested M-Variables: // External Amplifier M523->X:$078100,15,1 M623->X:$078108,15,1 M723->X:$078110,15,1 M823->X:$078118,15,1 Fault Inputs: ; Amp. Fault ; Amp. Fault ; Amp. Fault ; Amp. Fault Input Input Input Input (CH5), (CH6), (Ch7), (Ch8), Connector Connector Connector Connector X9 X10 X11 X12 This feature is commonly used when an amplifier is commanded through the DAC outputs on X9-X12, and the need of a fault input signal is required to run the operation safely (i.e. kill in the occurrence of an amplifier fault). PinOuts and Software Setup 142 Geo Brick LV User Manual X13: USB 2.0 Connector This connector is used to establish USB (A-B type cable) communication between the host PC and the Geo Brick LV. This type of USB cable can be purchased at any local electronics or computer store. It may be ordered from Delta Tau as well. Pin # Symbol Function 1 VCC N.C. 2 DData3 D+ Data+ 4 Gnd GND 5 Shell Shield 6 Shell Shield ! Caution The electrical ground plane of the host PC connected through USB must be at the same level as the Geo Brick LV. Ground loops may result in ESD shocks causing the damage of the communication processor on the Geo Brick LV. Use a shielded USB (category 6 or 7) cable. In noise sensitive environment, install ferrite cores at both Geo Brick and PC side. Note If the electrical ground planes of the host PC and the Geo Brick LV are not at the same level (e.g. laptop on battery) then the use of an industrial USB hub is highly advised. X14: RJ45, Ethernet Connector This connector is used to establish communication over Ethernet between the PC and the Geo Brick LV. A crossover cable is required if you are going directly to the Geo Brick LV from the PC Ethernet card, and not through a hub. Delta Tau strongly recommends the use of RJ45 CAT5e or better shielded cable. Newer network cards have the Auto-MDIX feature that eliminates the need for crossover cabling by performing an internal crossover when a straight cable is detected during the auto-negotiation process. For older network cards, one end of the link must perform media dependent interface (MDI) crossover (MDIX), so that the transmitter on one end of the data link is connected to the receiver on the other end of the data link (a crossover/patch cable is typically used). If an RJ45 hub is used, then a regular straight cable must be implemented. Maximum length for Ethernet cable should not exceed 100m (330ft). PinOuts and Software Setup 143 Geo Brick LV User Manual X15: Watchdog & ABORT (TB2) X15 has two essential functions: A 24VDC Abort Input (mandatory for normal operation) which can be used in various applications to halt motion when necessary (i.e. opening machine door, replacing tool). A watchdog relay output allowing the user to bring the machine to a stop in a safe manner in the occurrence of a watchdog. These functions are disabled on Geo Brick LV with Turbo PMAC firmware version 1.946 or earlier. Geo Brick LV with Turbo PMAC firmware version 1.947 or later allows the enabling (using software parameter I35) of the watchdog and abort functions: I35=0 Disables the watchdog and abort hardware functions (default setting) I35=1 Enables the watchdog and abort hardware functions 1 X15: Phoenix 5-pin TB Female Mating: Phoenix 5-pin TB Male 2 3 4 5 TB-5: 016-PL0F05-38P Pin # Symbol Function Notes 1 ABORT- Input ABORT Return 2 ABORT+ Input ABORT Input 24VDC 3 WD N.O. Output Watchdog (normally open contact) 4 WD N.C. Output Watchdog (normally closed contact) 5 WD COM Common Watchdog common Wiring the Abort Input If an Abort input button is used, it must be a normally closed switch. COM 24VDC Power Supply 24VDC Abort Input Switch (optional) 5 4 3 2 1 Killed axes are not affected by the triggering of the abort. They do not get enabled (unlike the software abort command). Note PinOuts and Software Setup 144 Geo Brick LV User Manual The hardware Abort input functionality differs slightly from the software global Abort (^A) command. The following table summarizes the differences: Motor(s) Status Before Abort Action Software Global Abort ^A Action Hardware Abort Trigger Action (Removing 24VDC) Killed (Open-Loop mode) Closes the position-loop on all active (Ixx0=1) motors No Action is taken. Motors remain killed Amplifier Enabled (i.e. #1o0, Open-Loop mode) Closes the position-loop on all active (Ixx0=1) motors Closes the position-loop on all ‘amplifier enabled’ motors only. Killed motors are not affected Servo-ing – in position (Closed-Loop mode) Motor(s) remain in closed-loop at velocity zero Motor(s) remain in closed-loop at velocity zero Servo-ing – Jogging (Closed-Loop mode) Motor(s) decelerate to zero velocity at Ixx15 rate Motor(s) decelerate to zero velocity at Ixx15 rate Servo-ing – Running Program(s) (Closed-Loop mode) Aborts motion program(s) and decelerate to zero velocity at Ixx15 rate Aborts motion program(s) and decelerate to zero velocity at Ixx15 rate Wiring the Watchdog Output Watchdog Output, Normally Open Watchdog Output, Normally Closed 24 VDC Power Supply COM COM 24 VDC Power Supply 24VDC 24VDC Watchdog COM COM Logic device (safe shutdown) Operation 543 21 24VDC 543 21 24VDC Logic device (safe shutdown) Mode Connection between pins #5 and #3 Connection between pins #5 and #4 Not triggered (normal operation) Open Closed Triggered (Faulty operation) Closed Open PinOuts and Software Setup 145 Geo Brick LV User Manual RS232: Serial Communication Port An optional serial RS-232 communication port is available on the Geo Brick LVs. This port can be used as a primary communication mean or employed as a secondary port that allows simultaneous communication. Pin# 1 2 3 4 5 6 7 8 9 N.C. DTR TXD CTS RXD RTS DSR N.C. GND RS-232: D-Sub DE-9F Mating: D-Sub DE-9M 5 4 9 3 8 2 7 1 6 Symbol Function Description Notes N.C. NC TXD Output Receive data Host transmit Data RXD Input Send data Host receive Data DSR Bi-directional Data set ready Tied to “DTR” GND Common Common GND DTR Bi-directional Data term ready Tied to “DSR” CTS Input Clear to send Host ready bit RTS Output Req. to send PMAC ready bit N.C NC The baud rate for the RS-232 serial port is set by variable I54. At power-up reset, The Geo Brick LV sets the active baud based on the setting of I54 and the CPU speed I52. Note that the baud rate frequency is divided down from the CPU’s operational frequency. The factory default baud rate is 38400. This baud rate will be selected automatically on re-initialization of the Geo Brick LV, either in hardware using the re-initialization (RESET SW) button or in software using the $$$*** command. To change the baud rate setting on the Geo Brick LV, set I54 to the corresponding value of desired frequency. Issue a SAVE and recycle power on the unit. For odd baud rate settings, refer to the Turbo Software Reference Manual. I54 Baud Rate I54 8 9600 12 9 14,400 13 10 19,200 14 11 28,800 15 Baud Rate 38,400 57,600 76,800 115,200 I54=12 (38400 baud) is the factory default setting Note PinOuts and Software Setup 146 Geo Brick LV User Manual AMP1-AMP8: Motor Wiring These connections are used to wire the amplifier-motor output: Traditionally, the Geo Brick LV offered a power rating of 5A continuous RMS, 15A peak RMS. In October 2012, two additional power ratings were added to the Geo Brick LV offering a total of three possible power configurations (per set of 4 axes each): Nominal RMS Current Peak RMS Current 0.25 A 0.75 A Left hand side indicator 1A 3A Right hand side indicator 5A 15 A No indicator Connector Notes For Stepper motors, use U and W at one coil, V and X at the other coil. For DC brushless motors (servo) use U, V and W. Leave X floating. For DC Brush motors, use U and W. Leave V and X floating. Pin# Symbol Function Description 1 Phase 1 U Output Motor Output 2 Phase 2 V Output Motor Output 3 Phase 3 W Output Motor Output 4 Phase 4 X Output Motor Output 5 GND Common GND Mating Connector 5-pin Phoenix Terminal Block: Phoenix Contact mating connector part # 1792278 Delta Tau mating connector part # 016-090A05-08P PinOuts and Software Setup 5 X W V U 4 3 2 1 147 Geo Brick LV User Manual Stepped Motor Wiring Shield 5 GND 4 X 3 W 2 V 1 U Brushless (Servo) Motor wiring Shield 5 GND 4 X 3 W 2 V 1 U Brush Motor Wiring 5 GND 4 X 3 W 2 V 1 U M The motor’s frame drain wire and the motor cable shield should be tied together to minimize noise disturbances. Note Note Color code may differ from one motor manufacturer to another. Review the motor documentation carefully before making this connection. PinOuts and Software Setup 148 Geo Brick LV User Manual +5V ENC PWR (Alternate Encoder Power) Typically, feedback devices are powered up through the X1-X8 connectors on the Geo Brick LV using the internal +5VDC power supply. In some cases, feedback devices consume power excessively and risk of surpassing the internal power supply limitation. This connector provides an alternate mean to power-up the feedback devices (+5V only) if the total encoder budget exceeds the specified thresholds. Encoders requiring greater than +5VDC power must be supplied externally, and NOT through the X1-X8 connectors NOR through this connector. Note G B D x - x x - x x x - x x x x x x x x Add-in Board Options The add-in board (any non-zero digit in the highlighted part number field) for MACRO and special feedback requires an additional ~ 0.5A (+5V power). This alters the total power available for encoders. The newer models of the Geo Brick LV have a beefier power supply and can handle more (+5V) power drain. The following tables summarize the +5V power available for encoder devices (X1-X8): ! The maximum current draw out of a single encoder channel must not exceed 750 mA. Caution Geo Brick LV Model Total Encoder Power Available [Amps] Power Per Encoder (4 x channels) [mA] Power Per Encoder ( 8 x channels) [mA] Older Newer Older Newer Older Newer Without Add-in Board 1.5 2 375 500 188 250 With Add-in Board 1 1.5 250 375 125 188 Note The newer models of the Geo Brick LV were introduced in October of 2012 and can be recognized by the 5-pin terminal block STO connector which was not previously available. PinOuts and Software Setup 149 Geo Brick LV User Manual Wiring the Alternate (+5V) Encoder Power Pin# Symbol Description Note 1 5VEXT Input 5V from external power supply 2 5VINT Output Tie to pin#1 to use internal power supply 3 GND Common Mating Connector: Adam-Tech part number 25CH-E-03 Pins part number 25CTE-R Crimping tool: Molex EDP #11-01-0208 ! Only two of the three available pins should be used at one time. Do not daisy-chain the internal 5V power supply with an external one. Caution By default, pins 1-2 are tied together to use the internal power supply. To wire an external power supply, remove the jumper tying pins 1-2 and connect the external +5V to pin #1, and ground/common to pin#3: Internal Power Supply Wiring (Default) External Power Supply Wiring 1 1 2 2 3 3 +5V External Power Supply Gnd A jumper tying pins 1 and 2 is the default configuration. This is the configuration with which the Geo Brick LV is shipped to a customer. Note Note The controller (PMAC) 5V logic is independent of this scheme, so if no encoder power is provided the PMAC will remain powered-up (provided the standard 24 volts is brought in). PinOuts and Software Setup 150 Geo Brick LV User Manual Functionality, Safety Measures There are a couple of safety and functionality measures to take into account when an external encoder power supply is utilized: Power sequence: encoders versus controller/drive It is highly recommended to power up the encoders before applying power to the Geo Brick LV Encoder Power Loss (i.e. power supply failure, loose wire/connector) The Geo Brick LV, with certain feedback devices, can be setup to read absolute position or perform phasing on power-up (either automatic firmware functions, or user PLCs). If the encoder power is not available, these functions will not be performed properly. Moreover, trying to close the loop on a motor without encoder feedback can be dangerous. ! Make sure that the encoders are powered-up before executing any motor/motion commands. Caution Losing encoder power can lead to dangerous runaway conditions, setting the fatal following error limit and I2T protection in PMAC is highly advised. ! Make sure that the fatal following error limit and I2T protection are configured properly in PMAC. Caution With Commutated motors (i.e. DC brushless), a loss of encoder generally breaks the commutation cycle causing a fatal following error or I2T fault either in PMAC or Amplifier side. However, with noncommutated motors (i.e. DC brush), losing encoder signal can more likely cause dangerous runway conditions. Note Setting up encoder loss detection for quadrature and sinusoidal encoders is highly recommended. Serial Encoders normally provide with a flag or timeout error bit that can be used for that function. PinOuts and Software Setup 151 Geo Brick LV User Manual MOTOR TYPE & PROTECTION POWER-ON PLCS The Geo Brick LV is capable of driving stepper and/or servo (brush/brushless) motors without any hardware changes. The amplifier firmware requires declaring the motor type (per channel) on power up in a power-on PLC. This PLC also executes the following functions: Set motor type (stepper or servo) Clear amplifier fault(s), per channel Enable Strobe Word write protection The sample PLCs below are common 8-axis configurations. For 4-axis configurations, simply delete the settings of axis 5 through 8. Note These functions are established by sending commands to the amplifier processor from the PMAC through the ADC Strobe Word (see Strobe Word data structure section). Motor Type & Protection Power-On PLCs 152 Geo Brick LV User Manual Stepper Motor Power-On PLC Sample The following PLC sets up an 8-axis Geo Brick LV to drive 8 stepper motors: Open PLC 1 Clear // Disable all other PLCs, and kill motors DIS PLC 0 DIS PLCC 0..31 DIS PLC 2..31 CMD^K // Axis 1 Settings CMD"WX:$78014,$F8CDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F84DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F00DFE" ; I5111 = 50 * 8388608/I10 // Axis 2 Settings CMD"WX:$78014,$F9CDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F94DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F10DFE" ; I5111 = 50 * 8388608/I10 // Axis 3 Settings CMD"WX:$78014,$FACDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$FA4DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F20DFE" ; I5111 = 50 * 8388608/I10 // Axis 4 Settings CMD"WX:$78014,$FBCDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$FB4DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F30DFE" ; I5111 = 50 * 8388608/I10 // Axis 5 Settings CMD"WX:$78114,$F8CDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F84DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F00DFE" ; I5111 = 50 * 8388608/I10 // Axis 6 Settings CMD"WX:$78114,$F9CDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F94DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F10DFE" ; I5111 = 50 * 8388608/I10 // Axis 7 Settings CMD"WX:$78114,$FACDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$FA4DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F20DFE" ; I5111 = 50 * 8388608/I10 // Axis 8 Settings CMD"WX:$78114,$FBCDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$FB4DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F30DFE" ; I5111 = 50 * 8388608/I10 Dis PLC 1 Close Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Motor Type & Protection Power-On PLCs 153 Geo Brick LV User Manual Servo (brushless/brush) Motor Power-On PLC Sample The following PLC sets up an 8-axis Geo Brick LV to drive 8 brush or brushless motors: Open plc 1 clear // Disable all other PLCs, and kill motors DIS PLC 0 DIS PLCC 0..31 DIS PLC 2..31 CMD^K // Axis 1 Settings CMD"WX:$78014,$F8CCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F84CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F00CFE" ; I5111 = 50 * 8388608/I10 // Axis 2 Settings CMD"WX:$78014,$F9CCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F94CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F10CFE" ; I5111 = 50 * 8388608/I10 // Axis 3 Settings CMD"WX:$78014,$FACCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$FA4CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F20CFE" ; I5111 = 50 * 8388608/I10 // Axis 4 Settings CMD"WX:$78014,$FBCCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$FB4CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F30CFE" ; I5111 = 50 * 8388608/I10 // Axis 5 Settings CMD"WX:$78114,$F8CCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F84CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F00CFE" ; I5111 = 50 * 8388608/I10 // Axis 6 Settings CMD"WX:$78114,$F9CCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F94CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F10CFE" ; I5111 = 50 * 8388608/I10 // Axis 7 Settings CMD"WX:$78114,$FACCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$FA4CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F20CFE" ; I5111 = 50 * 8388608/I10 // Axis 8 Settings CMD"WX:$78114,$FBCCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$FB4CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78114,$F30CFE" ; I5111 = 50 * 8388608/I10 Dis PLC 1 Close Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Motor Type & Protection Power-On PLCs 154 Geo Brick LV User Manual Hybrid Motor Power-On PLC Sample It is possible to mix and match motor types per channel. Note The following PLC sets up a 4-axis Geo Brick LV to drive stepper motors on channels 1, 2 and servo motors on channels 3, 4: Open plc 1 clear // Disable all other PLCs, and kill motors DIS PLC 0 DIS PLCC 0..31 DIS PLC 2..31 CMD^K // Axis 1 Settings CMD"WX:$78014,$F8CDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F84DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F00DFE" ; I5111 = 50 * 8388608/I10 // Axis 2 Settings CMD"WX:$78014,$F9CDFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F94DFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F10DFE" ; I5111 = 50 * 8388608/I10 // Axis 3 Settings CMD"WX:$78014,$FACCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$FA4CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F20CFE" ; I5111 = 50 * 8388608/I10 // Axis 4 Settings CMD"WX:$78014,$FBCCFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$FB4CFE" ; I5111 = 50 * 8388608/I10 CMD"WX:$78014,$F30CFE" ; I5111 = 50 * 8388608/I10 Dis PLC 1 Close Note Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Stepper) While(I5111 > 0)EndW Clear error(s) on selected axis in stepper mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW Select axis # and set motor mode (Servo) While(I5111 > 0)EndW Clear error(s) on selected axis in Servo mode While(I5111 > 0)EndW Save and write protect channel from strobe word changes While(I5111 > 0)EndW With firmware version 1.947 or later, it is possible to write to the strobe word using the corresponding Servo IC parameter I7m06 instead of using the online command syntax CMD" " with WX (write to X register) format. Motor Type & Protection Power-On PLCs 155 Geo Brick LV User Manual MOTOR SETUP This section discusses manual (step by step) motor setup guidelines for stepper or servo motors. This motor setup segment should be the last of a few necessary steps to properly configure a motor with Geo Brick LV. Motor Setup Flow Chart The following chart summarizes the steps to implement for setting up a motor properly with the Geo Brick LV: Encoder / Motor wiring Factory Default Reset $$$***, Save, $$$ (recommended) Encoder Software Setup. Verify Feedback. (Not applicable for steppers) Motor Type And Protection (Power-On PLC) Dominant Clock Settings Motor Software Setup Note Motor Setup The following (Motor Setup) section assumes that feedback devices (if applicable) have been setup properly, and that moving the motor/encoder shaft by hand shows correct data in the position window. 156 Geo Brick LV User Manual Dominant Clock Settings The choice of clock settings usually relies on system requirements, and type of application. Calculating Minimum PWM Frequency The minimum PWM frequency of a system is based on the time constant of the motor. In general, the lower the time constant, the higher the PWM frequency should be. The motor time constant is calculated dividing the motor inductance by the resistance (phase-phase). The minimum PWM Frequency is then determined using the following relationship: sec L H ROhms 20 2 PWM PWM ( Hz) 20 2 sec Example: A motor with an inductance of 2.80 mH, resistance of 14 (phase-phase) yields a time constant of 200 sec. Therefore, the minimum PWM Frequency is about ~15.9KHz. Recommended clock Frequencies The most commonly used and recommended clock settings for the Geo Brick LV are 20 KHz PWM, 10 KHz Phase, and 5 KHz Servo. I6800=1473 I6801=3 I6802=1 ; Macro IC0 Max Phase/PWM Frequency Control ; Macro IC0 Phase Clock Frequency Control ; Macro IC0 Servo Clock Frequency Control I7100=1473 I7101=3 I7102=1 ; Servo IC1 Max Phase/PWM Frequency Control ; Servo IC1 Phase Clock Frequency Control ; Servo IC1 Servo Clock Frequency Control I7000=1473 I7001=3 I7002=1 ; Servo IC0 Max Phase/PWM Frequency Control ; Servo IC0 Phase Clock Frequency Control ; Servo IC0 Servo Clock Frequency Control I10=1677653 ; Servo Interrupt Time Note that downloading parameters to a non-existent Servo or Macro IC is usually neglected by PMAC but it is not a good practice for documentation and future configuration downloads. Use/download only the parameters pertaining to the IC’s present on your unit: Condition I4900=$1 and I4902=$0 I4900=$3 and I4902=$0 I4900=$1 and I4902=$1 I4900=$3 and I4902=$1 Use/Download I7000s I7100s and I7000s I6800s and I7000s I6800s, I7100s and I7000s Description Servo IC 0 present Servo ICs 0, and 1 present Servo IC 0 and Macro IC 0 present Servo ICs 0, 1 and Macro IC 0 present Clock Calculations The following clock calculations are used in selected downloadable scripts in subsequent section(s). Thus, it is highly recommended to adjoin them to your downloadable file: I15=0 #define #define #define #define MaxPhaseFreq PWMClk PhaseClk ServoClk P8000 P8001 P8002 P8003 ; ; ; ; ; Trigonometric calculation in degrees Max Phase Clock [KHz] PWM Clock [KHz] Phase Clock [KHz] Servo Clock [KHz] MaxPhaseFreq=117964.8/(2*I7000+3) PWMClk=117964.8/(4*I7000+6) PhaseClk=MaxPhaseFreq/(I7001+1) ServoClk=PhaseClk/(I7002+1) Motor Setup 157 Geo Brick LV User Manual Stepper Motor Setup -- Direct Micro-Stepping Before you start Remember to create/edit the motor type and protection power-on PLC. Parameters with Comments ending with -User Input require the user to enter information pertaining to their system/hardware. Downloading and using the suggested M-variables is highly recommended. Detailed description of motor setup parameters can be found in the Turbo SRM Manual The traditional direct-microstepping technique controlled with sinusoidal outputs from the Turbo PMAC is not appropriate for motors controlled with direct-PWM outputs such as in Geo Brick LV Drives. A new technique permits direct microstepping along with direct-PWM motor control. This technique creates a simulated position sensor and feedback loop by numerically integrating the (velocity) command output from the servo loop. This integration requires two entries in the encoder conversion table. The resulting simulated position value can be used for both motor phase commutation and servo-loop feedback. Alternately, a load encoder could be used for position-loop feedback while this simulated value is used for commutation. Encoder Conversion Table Setup The first entry in the encoder conversion table (ECT) for each stepper motor must read the servo-loop output like an absolute encoder. This is done with a “parallel-read” entry of a Y/X double register (the data is in X), unshifted and unfiltered; specifying the use of 24 bits of the 48-bit Y/X register, starting 24 bits from the low end. This is effectively like reading a 24-bit DAC register. The second entry in the ECT for each stepper motor integrates the result of the first entry. Motor Setup 158 Geo Brick LV User Manual Motor (Quadrature/Torque) command value Registers Motor# Address (X-memory) Motor# Address (X-memory) 1 $0000BF 5 $0002BF 2 $00013F 6 $00033F 3 $0001BF 7 $0003BF 4 $00023F 8 $00043F Motors 1-8 Stepper Setup Encoder Conversion Table I8000=$6800BF I8001=$18018 I8002=$EC0001 I8003=$68013F I8004=$18018 I8005=$EC0004 I8006=$6801BF I8007=$18018 I8008=$EC0007 I8009=$68023F I8010=$18018 I8011=$EC000A I8012=$6802BF I8013=$18018 I8014=$EC000D I8015=$68033F I8016=$18018 I8017=$EC0010 I8018=$6803BF I8019=$18018 I8020=$EC0013 I8021=$68043F I8022=$18018 I8023=$EC0016 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Parallel read of Y/X:$BF Use 24 bits starting at X bit Integrate result from I8001 Parallel read of Y/X:$13F Use 24 bits starting at X bit Integrate result from I8004 Parallel read of Y/X:$1BF Use 24 bits starting at X bit Integrate result from I8007 Parallel read of Y/X:$23F Use 24 bits starting at X bit Integrate result from I8010 Parallel read of Y/X:$2BF Use 24 bits starting at X bit Integrate result from I8013 Parallel read of Y/X:$33F Use 24 bits starting at X bit Integrate result from I8016 Parallel read of Y/X:$3BF Use 24 bits starting at X bit Integrate result from I8019 Parallel read of Y/X:$43F Use 24 bits starting at X bit Integrate result from I8022 0 0 0 0 0 0 0 0 Position, Velocity Pointers: Ixx03, Ixx04 The position and velocity pointers (no external encoder used) will be set to the integration result: I103=$3503 I203=$3506 I303=$3509 I403=$350C I503=$350F I603=$3512 I703=$3515 I803=$3518 I104=$3503 I204=$3506 I304=$3509 I404=$350C I504=$350F I604=$3512 I704=$3515 I804=$3518 ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 position position position position position position position position and and and and and and and and velocity velocity velocity velocity velocity velocity velocity velocity feedback feedback feedback feedback feedback feedback feedback feedback Motor Activation, Commutation Enable: Ixx00, Ixx01 I100,8,100=1 I101,8,100=1 ; Motors 1-8 active ; Motors 1-8 Commutation Enabled (from X-register) Command Output Address: Ixx02 I102=$078002 I202=$07800A I302=$078012 I402=$07801A I502=$078102 I602=$07810A I702=$078112 I802=$07811A Motor Setup ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 Output Output Output Output Output Output Output Output Address Address Address Address Address Address Address Address 159 Geo Brick LV User Manual Current Feedback, ADC Mask, Commutation angle: Ixx82, Ixx84, Ixx72 I182=$078006 I282=$07800E I382=$078016 I482=$07801E I582=$078106 I682=$07810E I782=$078116 I882=$07811E I184,8,100=$FFFC00 I172,8,100=512 ; ; ; ; ; ; ; ; ; ; ; Motor 1 Current Feedback Address Motor 2 Current Feedback Address Motor 3 Current Feedback Address Motor 4 Current Feedback Address Motor 5 Current Feedback Address Motor 6 Current Feedback Address Motor 7 Current Feedback Address Motor 8 Current Feedback Address Motors 1-8 Current Loop Feedback Mask, 14-bit (Geo Brick LV Specific) Commutation Phase Angle.2-Phase opposite voltage & current sign (Geo Brick LV Specific) Flag Address, Mode Control: Ixx25, Ixx24 I125=$078000 I225=$078008 I325=$078010 I425=$078018 I525=$078100 I625=$078108 I725=$078110 I825=$078118 I124=$800401 I224=$800401 I324=$800401 I424=$800401 I524=$800401 I624=$800401 I724=$800401 I824=$800401 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 Flag Flag Flag Flag Flag Flag Flag Flag Flag Flag Flag Flag Flag Flag Flag Flag Address Address Address Address Address Address Address Address Control. Control. Control. Control. Control. Control. Control. Control. High High High High High High High High True True True True True True True True Amp Amp Amp Amp Amp Amp Amp Amp Fault, Fault, Fault, Fault, Fault, Fault, Fault, Fault, disable disable disable disable disable disable disable disable 3rd 3rd 3rd 3rd 3rd 3rd 3rd 3rd Harmonic Harmonic Harmonic Harmonic Harmonic Harmonic Harmonic Harmonic Commutation Address, Cycle size: Ixx83, Ixx70, Ixx71 I183=$3503 I283=$3506 I383=$3509 I483=$350C I583=$350F I683=$3512 I783=$3515 I883=$3518 I170,8,100=1 I171,8,100=65536 Motor Setup ; ; ; ; ; ; ; ; ; ; Motor 1 on-going Commutation Address (ECT Motor 2 on-going Commutation Address (ECT Motor 3 on-going Commutation Address (ECT Motor 4 on-going Commutation Address (ECT Motor 5 on-going Commutation Address (ECT Motor 6 on-going Commutation Address (ECT Motor 7 on-going Commutation Address (ECT Motor 8 on-going Commutation Address (ECT Motors 1-8 Single cycle size Microsteps per Ixx70 commutation cycles Integration Integration Integration Integration Integration Integration Integration Integration Result) Result) Result) Result) Result) Result) Result) Result) 160 Geo Brick LV User Manual Maximum Achievable Motor Speed, Output Command Limit: Ixx69 In Micro-Stepping, the maximum achievable speed is proportional to the Servo clock and Motor Step angle. A faster Servo Clock results in higher achievable motor speeds. To ensure the safety of the application and reliability of the micro-stepping technique, the smaller value between the Theoratical and the Calculated output command limit Ixx69 must be chosen. Theoratical Ixx69 Sine Table: 2048 Electrical Length = 2048*32 (5-bit shift) = 65536 Max Electrical Length per Servo Cycle = Electrical Length/6 = 10922.66667 Micro-Stepping Theoratical Ixx69 = Max Electrical Length per Servo Cycle/256 = 42.6667 Calculated Ixx69 Servo Clock (KHz): 8 Stepper Angle: 1.8° Motor Speed (rpm): 1500 Electrical Cycles per Revolution = 360 / (4*Stepper Angle) Maximum-Achievable Motor Speed (RPM) = (Servo Clock*1000) / (Electrical Cycles per Revolution*6)*60 Calculated Ixx69 = Max Motor Speed* Electrical Cycles per Revolution/ 60 * 2048/6/(Servo Clock *1000) #define ServoClk P8003 ; [KHz] Computed in Dominant Clock Settings Section #define StepAngle 1.8 ; Step Angle [Degrees] –User Input #define MotorSpeed 1500 ; Motor Speed Spec [RPM] –User Input #define ElecCyclePerRev P7004 ; Electrical Cycle Per Revolution ElecCyclePerRev=360/(4* StepAngle) #define MaxMtrSpeed P7005 ; This is the maximum achievable motor speed MaxMtrSpeed=( ServoClk*1000)/( ElecCyclePerRev*6)*60 #define CalculatedIxx69 P7006 ; Calculated Ixx69 CalculatedIxx69= MotorSpeed*ElecCyclePerRev/60*2048/6/(ServoClk*1000) Setting up 1.8° Step Motors specified at 1500 rpm and a Servo Clock of 8 KHz results in a maximum achievable speed (P7001) of 1600 rpm and a calculated Ixx69 (P7002) of 53.3334. Theoratial Ixx69 < Calculated Ixx69 => I169,8,100= Theoratial Ixx69 I169,8,100=42.667 Motor Setup ; Motors 1 thru 8 Output Command Limit 161 Geo Brick LV User Manual PWM Scale Factor: Ixx66 If Motor Rated Voltage > Bus Voltage: I166=0.95 * I7000 ; Motor #1 PWM Scale Factor, typical setting I266=I166 I366=I166 I466=I166 ; Assuming same motor(s) as motor #1 I566=I166 I666=I166 I766=I166 I866=I166 ; Assuming same motor(s) as motor #1 If Bus Voltage > Motor Rated Voltage: Ixx66 acts as a voltage limiter. In order to obtain full voltage output it is set to about 10% over PWM count divided by DC Bus/Motor voltage ratio: #define DCBusInput 60 ; DC Bus Voltage -User Input #define #define #define #define #define #define #define #define 24 24 24 24 24 24 24 24 ; ; ; ; ; ; ; ; Mtr1Voltage Mtr2Voltage Mtr3Voltage Mtr4Voltage Mtr5Voltage Mtr6Voltage Mtr7Voltage Mtr8Voltage Motor Motor Motor Motor Motor Motor Motor Motor I166=I7000*Mtr1Voltage/DCBusInput I266=I7000*Mtr2Voltage/DCBusInput I366=I7000*Mtr3Voltage/DCBusInput I466=I7000*Mtr4Voltage/DCBusInput I566=I7000*Mtr5Voltage/DCBusInput I666=I7000*Mtr6Voltage/DCBusInput I766=I7000*Mtr7Voltage/DCBusInput I866=I7000*Mtr8Voltage/DCBusInput Motor Setup 1 2 3 4 5 6 7 8 ; ; ; ; ; ; ; ; Rated Rated Rated Rated Rated Rated Rated Rated Motor Motor Motor Motor Motor Motor Motor Motor Voltage Voltage Voltage Voltage Voltage Voltage Voltage Voltage 1 2 3 4 5 6 7 8 PWM PWM PWM PWM PWM PWM PWM PWM [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User Scale Scale Scale Scale Scale Scale Scale Scale Factor Factor Factor Factor Factor Factor Factor Factor Input Input Input Input Input Input Input Input ( ( ( ( ( ( ( ( Geo Geo Geo Geo Geo Geo Geo Geo Brick Brick Brick Brick Brick Brick Brick Brick LV LV LV LV LV LV LV LV Specific) Specific) Specific) Specific) Specific) Specific) Specific) Specific) 162 Geo Brick LV User Manual I2T Protection, Magnetization Current: Ixx57, Ixx58, Ixx69, Ixx77 The lower values (tighter specifications) of the Continuous/Instantaneous current ratings between the Geo Brick LV and motor are chosen to setup I2T protection. If the peak current limit chosen is that of the Geo Brick LV (e.g. 15 Amps) then the time allowed at peak current is set to 1 seconds. If the peak current limit chosen is that of the Motor, check the motor specifications for time allowed at peak current. Examples: For setting up I2T on a Geo Brick LV driving a 3A/9A motor, 3 amps continuous and 9 amps instantaneous will be used as current limits. And time allowed at peak is that of the motor. For setting up I2T on a Geo Brick LV driving a 4A/16A motor, 4 amps continuous and 15 amps instantaneous will be used as current limits. And time allowed at peak is 1 seconds. The rule of thumb for Stepper magnetization current is Ixx77 = Ixx57/√2 Motors 1 thru 8 have 5-amp continuous, 15-amp peak current limits. With a servo clock of 8 KHz, I2T protection and magnetization current would be set to: I15=0 #define #define #define #define #define #define ContCurrent PeakCurrent MaxADC ServoClk I2TOnTime VoltOutLimit 5 15 33.85 P8003 1 P7007 ; ; ; ; ; ; ; Trigonometric calculation in degrees Continuous Current Limit [Amps] –User Input Instantaneous Current Limit [Amps] –User Input Brick LV full range ADC reading (see electrical specifications) [KHz] Computed in Dominant Clock Settings Section Time allowed at peak Current [sec] This is Ixx69 normally used in direct digital PWM I157=INT(32767*(ContCurrent*1.414/MaxADC)*cos(30)) I177=I157/SQRT(2) VoltOutLimit=INT(32767*(PeakCurrent*1.414/MaxADC)*cos(30)) I158=INT((VoltOutLimit*VoltOutLimit-I157*I157)*ServoClk*1000*I2TOnTime/(32767*32767)) I257=I157 I357=I157 I457=I157 I557=I157 I657=I157 I757=I157 I857=I157 I277=I177 I377=I177 I477=I177 I577=I177 I677=I177 I777=I177 I877=I177 Note Motor Setup I258=I158 I358=I158 I458=I158 I558=I158 I658=I158 I758=I158 I858=I158 This software I2T is designed to primarily protect the motor. The Geo Brick LV’s hardware built-in I2T protects the amplifier and presents an added layer of system safety. 163 Geo Brick LV User Manual Phasing, Power-On Mode: Ixx80, Ixx73, Ixx74, Ixx81, Ixx91 I180=0 I280=0 I380=0 I480=0 I580=0 I680=0 I780=0 I880=0 I173=0 I273=0 I373=0 I473=0 I573=0 I673=0 I773=0 I873=0 I174=0 I274=0 I374=0 I474=0 I574=0 I674=0 I774=0 I874=0 ; ; ; ; ; ; ; ; I181=$3503 I281=$3506 I381=$3509 I481=$350C I581=$350F I681=$3512 I781=$3515 I881=$3518 ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 Power-On Power-On Power-On Power-On Power-On Power-On Power-On Power-On Commutation, Commutation, Commutation, Commutation, Commutation, Commutation, Commutation, Commutation, Integrated Integrated Integrated Integrated Integrated Integrated Integrated Integrated Output Output Output Output Output Output Output Output #1 #2 #3 #4 #5 #6 #7 #8 I191,8,100=$500000 ; Mtrs 1-8 Pwr-on Pos. format Read 16 (11+5) bits of X register Ixx81 Position-Loop PID Gains: Ixx30…Ixx39 I130,8,100=1024 I131,8,100=0 I132,8,100=85 I133,8,100=1024 I134,8,100=1 I135,8,100=0 I136,8,100=0 I137,8,100=0 I138,8,100=0 I139,8,100=0 Motor Setup ; ; ; ; ; ; ; ; ; ; 164 Geo Brick LV User Manual Current-Loop Gains: Ixx61, Ixx62, Ixx76 The current-loop tuning can be performed as in any Turbo PMAC digital current loop setup. The PMACTuningPro2 automatic or interactive utility can be used to fine-tune the current loop gains. Ixx61=0.005, Ixx62=0, and Ixx76=0.05 is a good/safe starting point for interactive current-loop tuning. Typically, an acceptable current-loop step response would look like the following: Number of Counts per Revolution (Stepper Motors) With a count equal to a micro-step, and 512 micro-steps per 1.8-degree full step (2048 per cycle), you should expect to see 360*512/1.8= 102,400 counts per revolution of the motor. Note Motor Setup Some stepper motors have unconventional specifications making top speeds unattainable with the basic micro-stepping technique. Adjusting the direct current on the fly might be necessary (i.e. using open servo). 165 Geo Brick LV User Manual Brushless Motor Setup Before you start Remember to create/edit the motor type and protection power-on PLC At this point of the setup it is assumed that the encoder has been wired and configured correctly in the Encoder Feedback section. And that moving the motor/encoder shaft by hand shows encoder counts in the position window. Parameters with Comments ending with -User Input require the user to enter information pertaining to their system/hardware. Downloading and using the suggested M-variables is highly recommended. Detailed description of motor setup parameters can be found in the Turbo SRM Flag Control, Commutation Angle, Current Mask: Ixx24, Ixx72, Ixx84 I124,8,100=$800001 I172,8,100=683 I184,8,100=$FFFC00 ; Motors 1-8 Flag control, High true amp fault (Geo Brick LV specific) ; Motors 1-8 Commutation phase angle (Geo Brick LV specific) ; Motors 1-8 Current-Loop Feedback Mask Word (Geo Brick LV specific) PWM Scale Factor: Ixx66 If Motor Rated Voltage > Bus Voltage: I166=0.95 * I7000 ; Motor #1 PWM Scale Factor, typical setting I266=I166 I366=I166 I466=I166 ; Assuming same motor(s) as motor #1 I566=I166 I666=I166 I766=I166 I866=I166 ; Assuming same motor(s) as motor #1 If Bus Voltage > Motor Rated Voltage: Ixx66 acts as a voltage limiter. In order to obtain full voltage output it is set to the PWM count divided by DC Bus/Motor voltage ratio: #define DCBusInput 60 ; DC Bus Voltage -User Input #define #define #define #define #define #define #define #define 24 24 24 24 24 24 24 24 ; ; ; ; ; ; ; ; Mtr1Voltage Mtr2Voltage Mtr3Voltage Mtr4Voltage Mtr5Voltage Mtr6Voltage Mtr7Voltage Mtr8Voltage Motor Motor Motor Motor Motor Motor Motor Motor I166=I7000*Mtr1Voltage/DCBusInput I266=I7000*Mtr2Voltage/DCBusInput I366=I7000*Mtr3Voltage/DCBusInput I466=I7000*Mtr4Voltage/DCBusInput I566=I7000*Mtr5Voltage/DCBusInput I666=I7000*Mtr6Voltage/DCBusInput I766=I7000*Mtr7Voltage/DCBusInput I866=I7000*Mtr8Voltage/DCBusInput 1 2 3 4 5 6 7 8 ; ; ; ; ; ; ; ; Rated Rated Rated Rated Rated Rated Rated Rated Motor Motor Motor Motor Motor Motor Motor Motor Voltage Voltage Voltage Voltage Voltage Voltage Voltage Voltage 1 2 3 4 5 6 7 8 PWM PWM PWM PWM PWM PWM PWM PWM [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User Scale Scale Scale Scale Scale Scale Scale Scale Input Input Input Input Input Input Input Input Factor Factor Factor Factor Factor Factor Factor Factor Current Feedback Address: Ixx82 I182=$078006 I282=$07800E I382=$078016 I482=$07801E I582=$078106 I682=$07810E I782=$078116 I882=$07811E Motor Setup ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 Current Current Current Current Current Current Current Current Feedback Feedback Feedback Feedback Feedback Feedback Feedback Feedback Address Address Address Address Address Address Address Address 166 Geo Brick LV User Manual Commutation Position Address, Commutation Enable: Ixx83, Ixx01 Quadrature / Sinusoidal / HiperFace For these types of feedback devices, it is recommended to use the quadrature data for commutation. And Ixx01 should be equal to 1, indicating commutation from an X-register: I183=$078001 I283=$078009 I383=$078011 I483=$078019 I583=$078101 I683=$078109 I783=$078111 I883=$078119 ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 Commutation Commutation Commutation Commutation Commutation Commutation Commutation Commutation source source source source source source source source address address address address address address address address I101,8,100=1 ; Motors 1-8 Commutation Enabled, from X-register SSI / EnDat / BiSS Technique 1 PMAC expects the commutation data to be left most shifted. With technique 1, this is satisfied if the encoder data fulfills or exceeds 24 bits. But if the data length is less than 24 bits then it is recommended, for simplicity, to use the processed encoder conversion table result. Ixx01 is then set up correspondingly for either a Y- or X- register. If the Singleturn + Multiturn data fulfills 24 bits; ST+MT ≥ 24 bits: I183=$78B20 I283=$78B24 I383=$78B28 I483=$78B2C I583=$78B30 I683=$78B34 I783=$78B38 I883=$78B3C ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 Commutation Commutation Commutation Commutation Commutation Commutation Commutation Commutation source source source source source source source source address address address address address address address address I101,8,100=3 ; Motors 1-8 Commutation Enabled, from Y-register If the Singleturn + Multiturn data does not fulfill 24 bits; ST+MT < 24 bits: I183=I104 I283=I204 I383=I304 I483=I404 I583=I504 I683=I604 I783=I704 I883=I804 ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 Commutation Commutation Commutation Commutation Commutation Commutation Commutation Commutation source source source source source source source source address address address address address address address address I101,8,100=1 ; Motors 1-8 Commutation Enabled, from X-register Technique 2/3 With techniques 2 and 3, the commutation-dedicated encoder conversion table (see feedback setup section) result is the commutation source. And Ixx01 should be equal to 1 indicating an X-register: // These addresses can I183=$3512 ; Motor I283=$3514 ; Motor I383=$3516 ; Motor I483=$3518 ; Motor I583=$351A ; Motor I683=$351C ; Motor I783=$351E ; Motor I883=$3520 ; Motor I101,8,100=1 Motor Setup differ depending on the encoder conversion table management 1 Commutation source address -User Input 2 Commutation source address -User Input 3 Commutation source address -User Input 4 Commutation source address -User Input 5 Commutation source address -User Input 6 Commutation source address -User Input 7 Commutation source address -User Input 8 Commutation source address -User Input ; Motors 1-8 Commutation Enabled, from X-register 167 Geo Brick LV User Manual Resolver With resolvers, it is recommended to use the unfiltered data processed in the Encoder Conversion Table: // these addresses can I183=$3503 ; Motor I283=$350B ; Motor I383=$3513 ; Motor I483=$351B ; Motor I583=$3523 ; Motor I683=$352B ; Motor I783=$3533 ; Motor I883=$353B ; Motor I101,8,100=1 differ depending on the encoder 1 On-going Commutation Position 2 On-going Commutation Position 3 On-going Commutation Position 4 On-going Commutation Position 5 On-going Commutation Position 6 On-going Commutation Position 7 On-going Commutation Position 8 On-going Commutation Position conversion table management Address Address Address Address Address Address Address Address ; Motors 1-8 Commutation Enabled, from X-register Yaskawa With Yaskawa feedback devices, it is recommended to use the processed data in the Encoder Conversion Table (same as position): I183=I104 I283=I204 I383=I304 I483=I404 I583=I504 I683=I604 I783=I704 I883=I804 ; ; ; ; ; ; ; ; I101,8,100=1 ; Motors 1-8 Commutation Enabled, from X-register Motor Setup Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 On-going On-going On-going On-going On-going On-going On-going On-going Commutation Commutation Commutation Commutation Commutation Commutation Commutation Commutation Position Position Position Position Position Position Position Position Address Address Address Address Address Address Address Address 168 Geo Brick LV User Manual I2T Protection: Ixx57, Ixx58, Ixx69 The lower values (tighter specifications) of the Continuous/Instantaneous current ratings between the Geo Brick LV and motor are chosen to setup I2T protection. If the peak current limit chosen is that of the Geo Brick LV (e.g. 15 Amps) then the time allowed at peak current is set to 1 seconds. If the peak current limit chosen is that of the Motor, check the motor specifications for time allowed at peak current. Examples: For setting up I2T on a Geo Brick LV driving a 3A/9A motor, 3 amps continuous and 9 amps instantaneous will be used as current limits. And time allowed at peak is that of the motor. For setting up I2T on a Geo Brick LV driving a 4A/16A motor, 4 amps continuous and 15 amps instantaneous will be used as current limits. And time allowed at peak is 1 seconds. Motors 1 thru 8 have 5-amp continuous, 15-amp peak current limits. #define #define #define #define #define ServoClk ContCurrent PeakCurrent MaxADC I2TOnTime P8003 5 15 33.85 1 ; ; ; ; ; [KHz] Computed in Dominant Clock Settings Section Continuous Current Limit [Amps] –User Input Instantaneous Current Limit [Amps] –User Input Brick LV full range ADC reading (see electrical specifications) Time allowed at peak Current [sec] I157=INT(32767*(ContCurrent*1.414/MaxADC)*cos(30)) I169=INT(32767*(PeakCurrent*1.414/MaxADC)*cos(30)) I158=INT((I169*I169-I157*I157)*ServoClk*1000*I2TOnTime/(32767*32767)) I257=I157 I357=I157 I457=I157 I557=I157 I657=I157 I757=I157 I857=I157 I258=I158 I358=I158 I458=I158 I558=I158 I658=I158 I758=I158 I858=I158 Note Motor Setup I269=I169 I369=I169 I469=I169 I569=I169 I669=I169 I769=I169 I869=I169 This software I2T is designed to primarily protect the motor. The Geo Brick LV’s hardware built-in I2T protects the amplifier and presents an added layer of system safety. 169 Geo Brick LV User Manual Commutation Cycle Size: Ixx70, Ixx71 The ratio of Ixx70/Ixx71 represents the number of encoder counts per electrical cycle. These parameters are typically set up with respect to the motor, encoder type, resolution, and processing method: For a rotary motor: the number of commutation cycles Ixx70 should be equal to the number of pole pairs: Ixx70= {Number of pole pairs}. The commutation cycle size Ixx71, is equal to the electrical cycle length or pole-pair pitch in units of encoder counts: Feedback Type Quadrature Sinusoidal / HiperFace Resolver Motor Scale Factor (SF) [counts/rev] Ixx71 SF= Lines x 4 SF= Sine/Cosine cycles per rev * 128 SF= 4096 = SF = SF/32 = SF*32= 131072 SSI / EnDat / BiSS Technique 1 SF= 2ST = SF= 2ST = 32*SF= 32*2ST SSI / EnDat / BiSS Technique 2 SF= 2ST-5 = 2ST /32 SSI / EnDat / BiSS Technique 3 SF= 2ST If Ixx01= 3 If Ixx01= 1 = 218= 262144 Yaskawa Sigma II SF= 2ST Where ST: is the rotary encoder Singleturn resolution in bits = 32*SF= 32*2ST For a linear motor: the number of commutation cycles Ixx70 is typically equal to 1: Ixx70=1. The commutation cycle size Ixx71, is equal to the Electrical Cycle Length (ECL) or pole-pair pitch in units of encoder counts: Motor Scale Factor (SF) Feedback Type Ixx71 [counts/mm] Quadrature SF= (1/RESmm)*4 = SF*ECLmm= ECLmm / RESmm SF= 128/RESmm = SF*ECLmm/32= 4* ECLmm / RESmm SSI / EnDat / BiSS Technique 1 SF= 1/RESmm = ECLmm * SF= ECLmm / RESmm = 32* ECLmm*SF = 32* ECLmm/ RESmm SSI / EnDat / BiSS Technique 2 SF= 1/(32*RESmm) SSI / EnDat / BiSS Technique 3 SF= 1/RESmm Sinusoidal / HiperFace If Ixx01= 3 If Ixx01= 1 = ECLmm*SF/2Offset = ECLmm/(RESmm*2Offset) Yaskawa Sigma II SF= 1/RESmm = 32* ECLmm*SF = 32* ECLmm/ RESmm Where RES: is the linear scale resolution in user units (e.g. mm) ECL: is the electrical cycle length of the linear motor in the same units as RES (e.g. mm) Offset: is the ECT commutation offset; = linear encoder protocol bit length - 18 Motor Setup 170 Geo Brick LV User Manual Note The Singleturn (ST) data bits for rotary encoders, as well as the serial protocol bit-length for linear scales can be found in the encoder manufacturer’s spec sheet. The Electrical Cycle Length (ECL) or pole-pair pitch (in user units) can be found in the motor manufacturer’s spec sheet. Note Ixx71 Saturation High resolution encoders could saturate the Ixx71 register, which is a signed 24-bit register. Thus, the maximum value writeable to it is 2^24-1signbit= 16,777,215. But remember, the ratio of Ixx71/Ixx70 is what really matters. Dividing Ixx70 and Ixx71 by a common integer divisor could alleviate settings which are out of range. Example: For an 8-pole brushless rotary motor, with a high resolution encoder (producing 33,554,432 counts/revolution), Ixx70 and Ixx71 are usually set to 4 (pole pairs), and 33554432 respectively. These settings are not acceptable since Ixx71 exceeds the maximum permissible value in its 24-bit register, dividing both Ixx70 and Ixx71 by 4 results in acceptable settings: Ixx70= 4/4= 1 Ixx71= 33554432/4= 8388608 ADC Offsets: Ixx29, Ixx79 The ADC offsets importance may vary from one system to another, depending on the motor(s) type and application requirements. They can be left at default of zero especially if a motor setup is to be reproduced on multiple machines by copying the configuration file of the first time integration. However, they should ultimately be set to minimize measurement offsets from the A and B-phase current feedback circuits, respectively (read in Suggested M-variables Mxx05, Mxx06). ADC offsets compensation can be done using the following procedure (starting from a killed motor). This can be implemented in a one-time test PLC: 1. Record the current loop tuning gains: Ixx61, Ixx62, and Ixx76. Then set them to zero, these will be restored at the end of the test. 2. Issue a #no0 (zero open loop output) 3. Sample ADC phases A, and B. Using suggested M-Variables Mxx05 and Mxx06 respectively. E.g. store snapshots in two separate arrays of P-Variables. 4. Average readings over the number of sampled points. 5. Write the opposite value of the averaged ADCA readings in Ixx29 Write the opposite value of the averaged ADCB readings in Ixx79 6. Issue a #nK (Kill motor) 7. Restore the original current loop gains. Geo Brick LVs dating 10/1/2012 and later perform automatic ADC offset compensation. Leave Ixx29 and Ixx79 at zero. Note Motor Setup 171 Geo Brick LV User Manual Current-Loop Gains: Ixx61, Ixx62, Ixx76 The current-loop tuning is done as in any Turbo PMAC digital current loop setup. The PMACTuningPro2 automatic or interactive utility can be used to fine-tune the Current-Loop. An acceptable Current-Loop step response would look like: Motor Setup 172 Geo Brick LV User Manual Motor Phasing, Power-On Mode: Ixx73, Ixx74, Ixx80, Ixx81, Ixx91 The Geo Brick LV supports a variety of phasing procedures for commutated (brushless) motors. This section discusses the following phasing methods: Manual | Custom Phasing 2-Guess Phasing Method Stepper Phasing Method Hall Effect Phasing: Digital quadrature encoders Hall Effect Phasing: Yaskawa Incremental encoders Absolute Power-On Phasing: HiperFace Absolute Power-On Phasing: EnDat | SSI | BiSS Absolute Power-On Phasing: Yaskawa absolute encoders WARNING Note Motor Setup An unreliable phasing search method can lead to a runaway condition. Test the phasing search method carefully to make sure it works properly under all conceivable conditions, and various locations of the travel. Make sure the Ixx11 fatal following error limit is active and as tight as possible so the motor will be killed quickly in the event of a serious phasing search error. In general, it is NOT recommended to execute any phasing search move on power up using Turbo PMAC’s automatic setting (Ixx80). Motor phasing should be inserted in a power-on plc before which it is ensured that the bus power has been applied. 173 Geo Brick LV User Manual Manual | Custom Phasing Manual phasing can be used with virtually any type of feedback. It is ideal for: Quick Phasing Troubleshooting phasing difficulties Finding a “good” phase finding output value to use in the 2-guess or stepper phasing Manual phasing consists of locking the motor tightly onto one of its phases, then zeroing the phase position register (suggested M-Variable Mxx71). When implemented properly (locking the motor tightly to a phase), it is considered to be one of the finest phasing methods. The following is the most common manual phasing procedure: a. Record the values of Ixx29, and Ixx79. These will be restored at the end of test. b. Set Ixx29=0, and write a positive value in Ixx79 Ixx79=500 is a good starting point for most motors. c. Issue #nO0 where n is the motor number d. Increase (for larger motors) or decrease (for smaller motors) Ixx79 as necessary until the motor is locked tightly onto one of its phases. e. Wait for the motor to settle. In some instances, it oscillates around the phase for an extended period of time. Some motors are small enough that you could safely stabilize by hand. f. Zero the phase position register , suggested M-variable Mxx71=0 g. Issue a #nK to kill the motor h. Restore Ixx29, and Ixx79 to their original values i. Clear the phasing search error bit, Suggested M-Variable Mxx48=0 j. The motor is now phased. It is ready for open loop or closed loop commands (if the position loop is tuned). The aforementioned procedure can be done online from the terminal window, or implemented in a PLC for convenience. Manual Phasing Example 1: #define Mtr1PhasePos Mtr1PhasePos->X:$B4,0,24,S #define Mtr1PhaseErrBit Mtr1PhaseErrBit->Y:$C0,8 M171 ; Motor 1 Phase Position Register, Suggested M-Variable M148 ; Motor 1 Phasing Search Error Bit, Suggested M-Variable Open plc 1 clear I5111=500*8388608/I10 while(I5111>0) Endw P129=I129 P179=I179 ; Store Ixx29, and Ixx79 I129=0 I179=1000 ; Set Ixx29=0 and Ixx79 to positive value (adjustable) I5111=100*8388608/I10 while(I5111>0) Endw ; 100 msec delay CMD"#1o0" ; Issue 0% open loop command output I5111=3000*8388608/I10 while(I5111>0) Endw ; 3 seconds delay to allow motor to settle Mtr1PhasePos=0 ; Set phase register to zero I5111=500*8388608/I10 while(I5111>0) Endw ; 1/2 second delay CMD"#1K" ; Kill Motor I5111=100*8388608/I10 while (I5111>0) Endw ; 100 msec delay I129=P129 I179=P179 ; Restore Ixx29 and Ixx79 to original values Mtr1PhaseErrBit=0 ; Clear Phasing search error bit I5111=500*8388608/I10 while (I5111>0) Endw ; 1/2 second delay Dis plc 1 ; Execute PLC once Close Motor Setup 174 Geo Brick LV User Manual Alternately, a more refined manual phasing method can be implemented. Knowing a good value which would lock the motors onto a phase (using the above procedure), the following example locks (in small incremental steps) the motor onto one phase then steps it back into the other phase: Manual Phasing Example 2: #define Mtr1PhasePos Mtr1PhasePos->X:$B4,0,24,S #define Mtr1PhaseErrBit Mtr1PhaseErrBit->Y:$C0,8 M171 ; Motor 1 Phase Position Register, Suggested M-Variable M148 ; Motor 1 Phasing Search Error Bit, Suggested M-Variable Open plc 1 clear I5111=100*8388608/I10 while(I5111>0) Endw P129=I129 P179=I179 I129=0 I179=0 ; Delay ; Store Ixx29, and Ixx79 ; Set ADC offsets to zero I5111=100*8388608/I10 while(I5111>0) Endw CMD"#1o0" I5111=100*8388608/I10 while(I5111>0) Endw ; Delay ; Issue #nO0 ; Delay while (I129!>1500) I129=I129+10 I179=0 I5111=100*8388608/I10 while(I5111>0) Endw Endw while (200 < ABS(M166))endw I5111=1000*8388608/I10 while(I5111>0) Endw ; Force motor to Phase A ; by pushing current incrementally ; Delay while (I179!>1500) I179=I179+10 I129=I129-10 I5111=100*8388608/I10 while(I5111>0) Endw Endw while (200 < ABS(M166))endw I5111=1000*8388608/I10 while(I5111>0) Endw ; Force motor to Phase B ; by pushing current incrementally ; Delay Mtr1PhasePos=0 I5111=250*8388608/I10 while(I5111>0) Endw CMD"#1K" I5111=100*8388608/I10 while (I5111>0) Endw I129=P129 I179=P179 Mtr1PhaseErrBit=0 I5111=500*8388608/I10 while (I5111>0) Endw Dis plc 1 Close ; ; ; ; ; ; ; ; Motor Setup ; Wait for motor to settle ; Delay ; Wait for motor to settle ; Delay Set phase position register to zero 1/2 second delay Kill Motor Delay Restore Ixx29 and Ixx79 to original values Clear Phasing search error bit Delay Run PLC once 175 Geo Brick LV User Manual 2-Guess Phasing Method The 2-guess is a rough phasing method for motors with relatively small loads. It is not ideal for high torque requirements. It can be used with any type of feedback. Example of typical settings: Ixx73=1200 ; Phase finding output value (adjustable) in units of 16-bit DAC Ixx74=12 ; Units of servo cycles (adjustable) Ixx80=4 ; 2-guess method, no absolute position read, no power-on phasing Stepper Phasing Method The stepper is a finer phasing method than the 2-guess. It is generally used for motors with significant loads and higher torque demands. It can be used with any type of feedback. Example of typical settings: Ixx73=1200 ; Phase finding output value (adjustable) in units of 16-bit DAC Ixx74=80 ; Units of Servo Cycles * 256 (adjustable) Ixx80=6 ; Stepper method, no absolute position read, no power-on phasing The 2-guess or stepper method(s) phase the motor upon issuing a #n$. Note Motor Setup 176 Geo Brick LV User Manual Hall Effect Phasing: Digital quadrature encoders Digital hall sensors can be used for rough phasing on power-up without the need for a phasing search operation such as the manual, 2-guess, or stepper phasing methods. It provides absolute information about where the motor is positioned with respect to its commutation cycle. It is highly desirable due to the fact that it allows phasing the motor without any movement. Note Inherently, digital hall sensors have an error of about ±30°, resulting in a torque loss of about 15%. It needs to be corrected (fine phasing) for top operation. The Geo Brick LV supports the conventional 120° spacing hall sensors’ type, each nominally with 50% duty cycle, and nominally 1/3 cycle apart. The Geo Brick LV has no automatic hardware or software features to work with 60° spacing. The 120° spacing format provides six distinct states per cycle: Channel U Channel V Channel W -60° 0° 60° 120° 180° -120° -60° 0° 60° Follow these steps to implement hall sensor phasing: 1. Start with Ixx81=0, and Ixx91=0, which eventually are the parameters to be configured 2. Phase the motor manually or using the 2-guess/stepper method. 3. Jog the motor slowly (with rough PID gains), or move in open loop/by hand in the positive direction of the encoder while plotting Halls UVW (Mxx28) versus Phase Position (Mxx71). 4. Set up the detailed plot, scaling and processing for Halls UVW and Phase Position Motor Setup 177 Geo Brick LV User Manual Plotting the phase position (Mxx71) The scale factor is used to scale the phase position to 0 - 360°. It is = 360 / Ixx71 Plotting the hall sensors (Mxx28) $700000 Masking enables reading W, V, and U in bits 20, 21, and 22 respectively 5. Gathering, and plotting data for a short positive travel of the motor should look like: Motor #1: Hall Sensors Vs. Phase Position Phase Position Mxx71 (degrees) State 6 Hall Sensors UVW Mxx28 State 5 State 4 State 3 State 2 State 1 Time (sec) Primarily, we are interested in two occurrences on the plot; the transition of the halls data between states 1 & 3, and the point of intersection of Mxx28 and Mxx71 at this transition. This represents the Hall Effect Zero (HEZ). Motor Setup 178 Geo Brick LV User Manual With positive movement of the motor, if the halls state transition is from 1 to 3 (as seen in the example plot) then use the following set of equations: I181=$78000 #define HallsTrans1_3 M7025 #define Mtr1HEZ P7025 #define Mtr1HEZTemp P7026 HallsTrans1_3->* HallsTrans1_3=$800000 Mtr1HEZ=180 Mtr1HEZTemp = INT(((Mtr1HEZ%360)/360)*64) I191=(Mtr1HEZTemp*65536)+HallsTrans1_3 ; ; ; ; ; ; ; ; ; Channel 1 power-on phase address (see table below) Standard direction, 1 to 3 Hall effect zero Intermediate calculation Bit #22=0 for standard transition Degrees – User Input Processing hall effect zero Shift 16 bits left and set transition bit With positive movement of the motor, if the halls state transition is from 3 to 1 then use the following set of equations: I181=$78000 #define HallsTrans3_1 M7025 #define Mtr1HEZ P7025 #define Mtr1HEZTemp P7026 HallsTrans3_1->* HallsTrans3_1=$C00000 Mtr1HEZ=180 Mtr1HEZTemp = INT(((Mtr1HEZ%360)/360)*64) I191=(Mtr1HEZTemp*65536)+HallsTrans3_1 ; ; ; ; ; ; ; ; ; Channel 1 power-on phase address (see table below) Reversed direction, 3 to 1 Hall effect zero Intermediate calculation Bit #22=1 for reversed transition Degrees – User Input Processing hall effect zero Shift 16 bits left and set transition bit The only user input in the above set of equations is the Hall Effect Zero angle, derived from the plot. Note Power-On Phase Position Address Ixx81 For Hall Sensors Channel 1 $78000 Channel 5 $78100 Channel 2 $78008 Channel 6 $78108 Channel 3 $78010 Channel 7 $78110 Channel 4 $78018 Channel 8 $78118 Alternatively, the above procedure can be performed using the Halls Automatic Utility software available on our forum. Note Motor Setup The automatic software utility requires jogging the motor; make sure the motor is phased (custom, 2-guess, or stepper method) and that the position-loop tuning is acceptable for closed loop movement. 179 Geo Brick LV User Manual Fine Phasing Correcting for hall sensors’ error (torque loss) can be implemented using the following procedure (performed once per installation): 1. Phase the motor manually (as tight as possible). See manual phasing section. 2. Home motor to machine zero location (e.g. most commonly using flag and C-index), with or without home offset, similarly to how the motor would home after the machine has been commissioned. 3. Record the phase position Mxx71 at the home location The above procedure reveals the optimum phase position at home or zero location of the motor. Subsequently, the motor is “roughly phased” on power up using hall sensors. And the phase position Mxx71 is then corrected (overwritten) after the motor is homed (to known location). This is usually done in a PLC routine. Example: Channel 1 is driving a motor with home capture done using home flag and index pulse (high true). The recorded phase position from the manual phasing reference test was found to be 330. It is stored (saved) in a user defined variable. I7012=3 I7013=0 ; Motor 1 Capture Control, Index high and Flag high ; Motor 1 Capture Control flag select, Home Flag #define Mtr1DesVelZero M133 Mtr1DesVelZero->X:$0000B0,13,1 #define Mtr1InPosBit M140 Mtr1InPosBit->Y:$0000C0,0,1 #define Mtr1PhasePos M171 Mtr1PhasePos->X:$B4,0,24,S #define Mtr1RecPhasePos P7027 Mtr1RecPhasePos=330 ; ; ; ; ; ; ; ; Motor 1 Desired-velocity-zero bit, Suggested M-Variable Motor 1 Background in-position bit, Suggested M-Variable Motor 1 Phase Position Register, Suggested M-Variable Recorded Phase Position (Manual phasing reference test) -- User Input Open plc 1 clear I5111=500*8388608/I10 while(I5111>0)Endw CMD"#1$" I5111=50*8388608/I10 while(I5111>0)Endw While(Mtr1DesVelZero=0 or Mtr1InPosBit=0) Endw CMD"#1hm" I5111=50*8388608/I10 while(I5111>0)Endw While(Mtr1DesVelZero=0 or Mtr1InPosBit=0)Endw Mtr1PhasePos =Mtr1RecPhasePos I5111=500*8388608/I10 while(I5111>0)Endw CMD"#1K" Disable plc 1 Close Motor Setup ; ; ; ; ; ; ; ; ; ; ; 1/2 sec delay Phase motor, using Hall Effect Sensors 50 msec Delay Wait until motor settles, and in position Issue a home command 50 msec Delay Wait until motor settles, and in position Adjust Phase Position 1/2 sec delay Kill Motor (Optional) Execute once 180 Geo Brick LV User Manual Hall Effect Phasing: Yaskawa Incremental encoders Hall-effect sensors can be used for rough phasing on power-up without the need for a phasing search move. This initial phasing provides reasonable torque. With a hall sensors’ error of about ±30° resulting a loss in torque of about 15%, it will need to be corrected for top operation. Hall-effect sensors usually map out 6 zones of 60° electrical each. In terms of Turbo PMAC’s commutation cycle, the boundaries should be at 180°, -120°, -60°, 0°, 60°, and 120°. Zone 1 2 3 Definitions #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define Phase30Deg Phase90Deg Phase150Deg Phase210Deg Phase270Deg Phase330Deg Phase30Deg Phase90Deg Phase150Deg Phase210Deg Phase270Deg Phase330Deg Phase30Deg Phase90Deg Phase150Deg Phase210Deg Phase270Deg Phase330Deg Zone 1 5 4 6 2 3 2 3 1 5 4 6 3 1 5 4 6 2 4 5 6 Definitions #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define Phase30Deg Phase90Deg Phase150Deg Phase210Deg Phase270Deg Phase330Deg Phase30Deg Phase90Deg Phase150Deg Phase210Deg Phase270Deg Phase330Deg Phase30Deg Phase90Deg Phase150Deg Phase210Deg Phase270Deg Phase330Deg 4 6 2 3 1 5 5 4 6 2 3 1 6 2 3 1 5 4 In order to decide which set of definitions to use for a motor, a one-time test needs to be done. It consists of forcing/locking the motor to a phase with a current offset and reading the state output of the hall sensors. Record the values of Ixx29, and Ixx79 to restore them at the end of test Set Ixx29=0, write a positive value to Ixx79 and issue a #nO0. 500 is a reasonable value for Ixx79 to start with. Increment as necessary to force the motor to tightly lock onto a phase. Record the Yaskawa Incremental Sensors Data. The result is an integer number between 1 and 6 (a value of 0 or 7 is not valid) representing the zone of which definitions to be used in the subsequent PLC. Remember, Turbo PMAC allows only nibble based register definitions, so in order to read bits 1 thru 3, a 1-bit right shift or division by 2 is necessary: Motor Setup 181 Geo Brick LV User Manual #define #define #define #define #define #define #define #define Ch1YasIncBits0_3 Ch2YasIncBits0_3 Ch3YasIncBits0_3 Ch4YasIncBits0_3 Ch5YasIncBits0_3 Ch6YasIncBits0_3 Ch7YasIncBits0_3 Ch8YasIncBits0_3 M127 M227 M327 M427 M527 M627 M727 M827 ; ; ; ; ; ; ; ; Channel Channel Channel Channel Channel Channel Channel Channel 1 2 3 4 5 6 7 8 Yaskawa Yaskawa Yaskawa Yaskawa Yaskawa Yaskawa Yaskawa Yaskawa Inc. Inc. Inc. Inc. Inc. Inc. Inc. Inc. Data Data Data Data Data Data Data Data (first (first (first (first (first (first (first (first ; ; ; ; ; ; ; ; Channel Channel Channel Channel Channel Channel Channel Channel 1 2 3 4 5 6 7 8 Yaskawa Yaskawa Yaskawa Yaskawa Yaskawa Yaskawa Yaskawa Yaskawa Inc. Inc. Inc. Inc. Inc. Inc. Inc. Inc. Hall Hall Hall Hall Hall Hall Hall Hall Sensors Sensors Sensors Sensors Sensors Sensors Sensors Sensors 4 4 4 4 4 4 4 4 bits) bits) bits) bits) bits) bits) bits) bits) Ch1YasIncBits0_3->Y:$78B20,0,4 Ch2YasIncBits0_3->Y:$78B24,0,4 Ch3YasIncBits0_3->Y:$78B28,0,4 Ch4YasIncBits0_3->Y:$78B2C,0,4 Ch5YasIncBits0_3->Y:$78B30,0,4 Ch6YasIncBits0_3->Y:$78B34,0,4 Ch7YasIncBits0_3->Y:$78B38,0,4 Ch8YasIncBits0_3->Y:$78B3C,0,4 #define Ch1YasIncHalls M128 #define Ch2YasIncHalls M228 #define Ch3YasIncHalls M328 #define Ch4YasIncHalls M428 #define Ch5YasIncHalls M528 #define Ch6YasIncHalls M628 #define Ch7YasIncHalls M128 #define Ch8YasIncHalls M828 M128,8,100->* Ch1YasIncHalls=Ch1YasIncBits0_3/2 Ch2YasIncHalls=Ch2YasIncBits0_3/2 Ch3YasIncHalls=Ch3YasIncBits0_3/2 Ch4YasIncHalls=Ch4YasIncBits0_3/2 Ch5YasIncHalls=Ch5YasIncBits0_3/2 Ch6YasIncHalls=Ch6YasIncBits0_3/2 Ch7YasIncHalls=Ch7YasIncBits0_3/2 Ch8YasIncHalls=Ch8YasIncBits0_3/2 Data Data Data Data Data Data Data Data Restore Ixx29, and Ixx79 to their original values Motor Setup 182 Geo Brick LV User Manual Example: Channel 1 is driving a Yaskawa Incremental Encoder, with the test procedure above resulting in zone-1 definitions. Halls power-on phasing can be done in a PLC as follows: #define Ch1IncData #define Ch1Halls M7030 M7031 Ch1IncData->Y:$78B20,0,24 Ch1Halls->* #define Mtr1PhasePos #define Mtr1PhaseSrchErr M171 M148 Mtr1PhasePos->X:$0000B4,24,S Mtr1PhaseSrchErr->Y:$0000C0,8,1 ; Suggested M-Variable definition ; Suggested M-Variable definition ; #1 Present phase position (counts *Ixx70) ; #1 Phasing error fault bit // Zone-1 Definitions –User Input #define Phase30Deg 1 #define Phase90Deg 5 #define Phase150Deg 4 #define Phase210Deg 6 #define Phase270Deg 2 #define Phase330Deg 3 Open plc 1 clear Ch1Halls = int ((Ch1IncData & $E) / 2); If (Ch1Halls = Phase30Deg) Mtr1PhasePos = I171 * 30 / 360; Endif If (Ch1Halls = Phase90Deg) Mtr1PhasePos = I171 * 90 / 360; Endif If (Ch1Halls = Phase150Deg) Mtr1PhasePos = I171 * 150 / 360; Endif If (Ch1Halls = Phase210Deg) Mtr1PhasePos = I171 * 210 / 360; Endif If (Ch1Halls = Phase270Deg) Mtr1PhasePos = I171 * 270 / 360; Endif If (Ch1Halls = Phase330Deg) Mtr1PhasePos = I171 * 330 / 360; Endif Mtr1PhaseSrchErr = 0; disable plc 1 close Motor Setup 183 Geo Brick LV User Manual Absolute Power-On Phasing: HiperFace With HiperFace, the absolute serial data can be used to establish a phase reference position on power-up without moving the motor. A custom PLC is suggested for reading the absolute power-on position directly from the raw serial HiperFace data registers. Note Prior to implementing a power-on phasing routine, the user should verify that the motor can be phased manually, be able to execute openloop moves successfully (output and encoder direction matching), and possibly perform jog commands (requires PID tuning). A one-time simple test (per installation) is performed, preferably on an unloaded motor, to find the motor phase position offset: a. Execute the power-position read PLC to ensure that the actual position is correct and up to date b. Record the values of Ixx29, and Ixx79 to restore them at the end of test (if applicable) c. Set Ixx29=0, and write a positive value to Ixx79 then issue a #nO0 (where n is the motor number). 500 is a conservative value for Ixx79 to start with. Adjust appropriately (most likely to increase) to force the motor to lock tightly onto a phase d. Wait for the motor to settle e. Record the absolute position from the position window or issue a #nP to return the motor position in the terminal window f. Issue a #nK to kill the motor g. Restore Ixx29, and Ixx79 to their original values (if applicable) h. Enter the recorded value in the corresponding motor/channel definition in the example plc below The following example PLC computes and corrects for the phase position register (Mxx71) for channels 1 through 8. It is pre-configured for the user to input their encoder/motor information, also to specify which channels are to perform an absolute power-on phasing. Using the Absolute Power-On Phasing Example PLC Under the User Input section: 1. In MtrxSF, enter the motor scale factor. For rotary encoders, this is the number of counts per revolution = 2 Single-Turn Resolution For Linear encoders, this is the number of counts per user units (i.e. mm) = 1/Encoder Resolution 2. In MtrxPhaseTest, enter the position value recorded in the manual phasing test described above. 3. In ChPhaseSel, specify which channels are desired to perform an absolute power-on phasing. This value is in hexadecimal. A value of 1 in the corresponding field specifies that this channel is connected, 0 specifies that it is not connected and should not perform phasing. Examples: Motor Setup 184 Geo Brick LV User Manual Channel# ChPhaseSel (Binary) ChPhaseSel (Hex) 8 7 6 5 4 3 2 1 0 0 0 0 1 1 1 1 => ChPhaseSel =$0F 0 F Channel# Absolute Power-On Phasing, channels ChPhaseSel (Binary) 1,3,5,7 ChPhaseSel (Hex) 8 7 6 5 4 3 2 1 0 1 0 1 0 1 0 1 => ChPhaseSel =$55 5 5 Absolute Power-On Phasing, channels 1 through 4 //=========================== NOTES ABOUT THIS PLC EXAMPLE ================================// // This PLC example utilizes: - P7050 through P7079 // - Suggested M-Variables (make sure they are downloaded) // Make sure that current and/or future configurations do not create conflicts with // these parameters. //=========================================================================================// P7050..7079=0 ; Reset P-Variables at download //==================================== USER INPUT =========================================// #define Mtr1SF P7050 #define Mtr5SF P7054 ; Motors scale factor #define Mtr2SF P7051 #define Mtr6SF P7055 ; cts/rev for rotary encoders #define Mtr3SF P7052 #define Mtr7SF P7056 ; cts/user units (i.e. mm, inches) for linear #define Mtr4SF P7053 #define Mtr8SF P7057 ; Mtr1SF=0 Mtr5SF=0 ; --User Input Mtr2SF=0 Mtr6SF=0 ; --User Input Mtr3SF=0 Mtr7SF=0 ; --User Input Mtr4SF=0 Mtr8SF=0 ; --User Input #define Mtr1PhaseTest P7058 #define #define Mtr2PhaseTest P7059 #define #define Mtr3PhaseTest P7060 #define #define Mtr4PhaseTest P7061 #define Mtr1PhaseTest=0 Mtr5PhaseTest=0 Mtr2PhaseTest=0 Mtr6PhaseTest=0 Mtr3PhaseTest=0 Mtr7PhaseTest=0 Mtr4PhaseTest=0 Mtr8PhaseTest=0 #define ChPhaseSel P7066 ChPhaseSel=$0 Mtr5PhaseTest Mtr6PhaseTest Mtr7PhaseTest Mtr8PhaseTest ; --User Input ; --User Input ; --User Input ; --User Input P7062 P7063 P7064 P7065 ; Phase force test values ; ; ; ; Select channels to perform power-on phasing (in Hexadecimal) ; Channels selected for power-on phasing --User Input //=============================== DEFINITIONS & SUBSTITUTIONS =============================// #define ChNo P7067 ; Present addressed channel #define PhaseOffset P7068 ; Holding register for computing phase position offset #define ActPos P7069 ; Indirect addressing index for actual position, 162 #define PresPhasePos P7070 ; Holding register for computing present phase position #define Ixx70 P7071 ; Indirect addresssing index for No of commutation cycles, 170 #define Ixx71 P7072 ; Indirect addresssing index for commutation cycle size, 171 #define Mxx71 P7073 ; Indirect addresssing index for phase position register, 171 #define PhaseErrBit P7074 ; Indirect addresssing index for phasing search error bit, 148 #define PhaseTest P7075 ; Indirect addresssing index for force phase test values, 7058 #define MtrSF P7076 ; Indirect addresssing index for motor scale factor, 7050 #define ChNoHex P7077 ; Channel number in hex #define Ixx08 P7078 ; Indirect addresssing index for position scale factor, 108 #define ChPhaseTrue P7079 ; Present channel power-on phasing flag, =1 true =0 false //=================================== PLC SCRIPT CODE =====================================// Open plc 1 clear ChNo=0 ; Reset channel number While(ChNo!>7) ; Loop for 8 channels ChNo=ChNo+1 ChNoHex=exp((ChNo-1)*ln(2)) ChPhaseTrue=(ChPhaseSel&ChNoHex)/ChNoHex If (ChPhaseTrue!=0) ; Absolute read on this channel? MtrSF=7050+(ChNo-1)*1 PhaseTest=7058+(ChNo-1)*1 Ixx70=170+(ChNo-1)*100 Ixx71=171+(ChNo-1)*100 ActPos=162+(ChNo-1)*100 Motor Setup 185 Geo Brick LV User Manual Ixx08=108+(ChNo-1)*100 Mxx71=171+(ChNo-1)*100 PhaseErrBit=148+(ChNo-1)*100 I5111= 100*8388608/I10 while(I5111>0) endw // Compute position offset from user force phase test input PhaseOffset=P(PhaseTest)%P(MtrSF) PhaseOffset=PhaseOffset*I(Ixx70) PhaseOffset=PhaseOffset%I(Ixx71) I5111= 100*8388608/I10 while(I5111>0) endw // Compute present phase position PresPhasePos=M(ActPos)/(I(Ixx08)*32) PresPhasePos=PresPhasePos%P(MtrSF) PresPhasePos=PresPhasePos*I(Ixx70) PresPhasePos=PresPhasePos%I(Ixx71) I5111= 100*8388608/I10 while(I5111>0) endw // Correct for Mxx71 to apply power-on phasing, and clear phase error search bit M(Mxx71)=(PresPhasePos-PhaseOffset)%I(Ixx71) M(PhaseErrBit)=0 I5111= 100*8388608/I10 while(I5111>0) endw EndIf Endw Dis plc 1 close //=========================================================================================// Motor Setup 186 Geo Brick LV User Manual Absolute Power-On Phasing: EnDat | SSI | BiSS With absolute serial encoders, the absolute serial data can be used to establish a phase reference position on power-up without moving the motor or executing a phase search move. The automatic setup of power-on phasing with PMAC is established through finding the motor’s phase offset (a one-time test per installation) and storing the result (scaled properly) in the phase position offset register (Ixx75). It also requires specifying the power-on phase source (Ixx81), and format (Ixx91). The following, is a summary of the settings with the various proposed setup techniques: Technique 1 PhaseOffset (found experimentally) For Ixx01= 3 For Ixx01= 1 Technique 2/3 (Ixx01=1) Read from Serial data register A Read from Position ECT result Read from Commutation ECT result Ixx81 = Serial data register A = Ixx83 (Pos. ECT result) Ixx91 = Unsigned, Y-register ST bits = Unsigned, X-register, (ST + 5bit shift) bits = Comm. ECT result = Unsigned, X-register, 18 bits = ( - PhaseOffset * Ixx70 ) % Ixx71 Ixx75 Note The automatic power-on phasing routine (Ixx75, Ixx81, and Ixx91) expects the least significant bit of the data to be right most shifted (at bit 0). Remember that the serial data register A address for each of the channels is: Serial Data Register A ! Caution Motor Setup Channel 1 Y:$78B20 Channel 5 Y:$78B30 Channel 2 Y:$78B24 Channel 6 Y:$78B34 Channel 3 Y:$78B28 Channel 7 Y:$78B38 Channel 4 Y:$78B2C Channel 8 Y:$78B3C Prior to implementing an absolute power-on phasing routine, make sure that the motor can be phased manually, and that open-loop and/or closed-loop moves (require PID tuning) can be performed successfully. 187 Geo Brick LV User Manual Finding the Phase Offset The phase offset is found experimentally by performing a one-time phase force test on an uncoupled/unloaded (preferably) motor: 1. Read/update the absolute position (must be read correctly for the phasing to work). Issue a #n$* command, or enable the corresponding absolute position read PLC. 2. Record Ixx29, and Ixx79 (if non zero).These should be restored at the end of the test 3. Set Ixx29=0, and write a positive value to Ixx79 (500 is a good starting value). 4. Issue a #nO0 to send a zero open loop output. 5. Increase Ixx79 until the motor is tightly locked onto a phase. 6. Make sure the motor is settled and stationary (locked onto a phase) 7. Record the following value (this is the motor’s phase offset): Technique 1 Technique 2/3 For Ixx01=1 For Ixx01=3 Query the motor’s corresponding Query the motor’s corresponding Query the motor’s corresponding commutation ECT result position ECT result serial data register A e.g.: RX:$3512 e.g.: RX:$3502 e.g. RY:$78B20 8. Issue a #nK to kill the motor 9. Restore Ixx29, and Ixx79 to their original values Setting up Ixx81, the power-on phase position address: Technique 1 For Ixx01= 3 For Ixx01= 1 Technique 2/3 (Ixx01=1) = Serial data register A = Ixx83 (Pos. ECT result) = Comm. ECT result Technique 1: If Ixx01= 3; Ixx81 is equal to the motor’s corresponding serial data register A. (e.g.: I181=$78B20). If Ixx01=1; Ixx81 is equal to the motor’s corresponding position ECT result. (e.g.: I181=$3502). Technique 2/3: Ixx81 is equal to the motor’s corresponding commutation ECT result. (e.g.: I181=$3512). Motor Setup 188 Geo Brick LV User Manual Setting up Ixx91, the power-on phase position format: Technique 1 For Ixx01= 3 For Ixx01= 1 = Unsigned, Y-register = Unsigned, X-register, ST bits (ST + 5bit-shift) bits Technique 2/3 (Ixx01=1) = Unsigned, X-register, 18 bits The following diagram displays how Ixx91 is set up: Bit 22: =1 X-Register =0 Y-Register Bit 23: =1 Signed =0 Unsigned Ixx91 Bits16-21: Number of Bits to read Bits 0-15: reserved (always 0) Binary: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Hex($): 0 0 0 0 0 0 Technique 1: If Ixx01=3; Ixx91 is set up for unsigned, Y-register, Singleturn bits. For example: A 30-bit (18-bit Singleturn, 12-bit Multiturn) rotary encoder would yield Ixx91= $120000. If Ixx01=1; Ixx91 is set up for unsigned, X-register, (Singleturn +5) bits. For example: A 20-bit (20-bit Singleturn, 0-bit Multiturn) rotary encoder, or linear scale with similar protocol resolution (20 bits) would yield Ixx91= $590000. Technique 2/3: Since the commutation is limited to 18 bits, and processed separately in the encoder conversion table, Ixx91 is always= $520000 (unsigned, X-register, 18 bits). Note Motor Setup Ixx91 is a 24-bit hexadecimal word. The upper most two digits are the only relevant ones. The lower 16 bits are reserved and should always be left at zero. 189 Geo Brick LV User Manual Setting up Ixx75, the phase position offset The Phase position offset is set up using the following equation: Where: PhaseOffset is the recorded value (found earlier) from the phase force test. In this mode, and upon issuing a #n$ command, PMAC will compute the correct phase position then close the loop on the motor (motor must be tuned to hold position). ! It is imperative that the absolute position read is performed successfully prior to issuing a phase command. Caution If closing the position loop is not desired with the #n$ command then it is advised to create a simple PLC, in which the current and PID loop gains are set to zero prior to issuing #n$ then restored (and motor killed) after the phase position has been set, e.g.: Open PLC 1 Clear // Make sure that the absolute position is read and reported prior to this script code I5111=100*8388608/I10 While(I5111>0) Endw ; 100 msec delay CMD"#1K" ; Make sure motor is killed I5111=100*8388608/I10 While(I5111>0) Endw ; 100 msec delay CMD"I130..139=0" ; Zero PID loop gains I161=0 I162=0 I176=0 ; Zero Current loop gains I5111=100*8388608/I10 While(I5111>0) Endw ; 100 msec delay CMD"#1$" ; Phase command I5111=500*8388608/I10 While(I5111>0) Endw ; 500 msec delay CMD"#1K" ; Kill Motor I5111=500*8388608/I10 While(I5111>0) Endw ; 500 msec delay // Here: ok to restore PID and current loop gains // I130=X I131=X I132=X I133=X I134=X I135=X I136=X I137=X I138=X I139=X // I161=X I162=X I176=X I5111=100*8388608/I10 While(I5111>0) Endw ; 100 msec delay Dis PLC 1 Close Motor Setup 190 Geo Brick LV User Manual Absolute Power-On Phasing: Yaskawa absolute encoders With absolute encoders, the single turn data is used to find an absolute phase position offset per electrical cycle thus an absolute phase reference position. Note Prior to implementing a power-on phasing routine you should try and be able to phase the motor manually, successfully execute open-loop moves (output and encoder direction matching), and jog commands (require PID tuning). Remember to increase the fatal following error limit with high resolution encoders when executing closed-loop moves The U-phase in the Yaskawa motor/encoder assemblies is usually aligned with the index pulse, which should result in the same motor phase offset per one revolution for each encoder type (i.e. 16, 17, or 20bit). Yaskawa Absolute Encoders Single-Turn Data 16-bit 17-bit 20-bit #define Mtr1STD4_15 M180 #define Mtr2STD4_15 M280 #define Mtr3STD4_15 M380 #define Mtr4STD4_15 M480 #define Mtr5STD4_15 M580 #define Mtr6STD4_15 M680 #define Mtr7STD4_15 M780 #define Mtr8STD4_15 M880 Mtr1STD4_15->Y:$278B20,4,16 Mtr2STD4_15->Y:$278B24,4,16 Mtr3STD4_15->Y:$278B28,4,16 Mtr4STD4_15->Y:$278B2C,4,16 Mtr5STD4_15->Y:$278B20,4,16 Mtr6STD4_15->Y:$278B34,4,16 Mtr7STD4_15->Y:$278B38,4,16 Mtr8STD4_15->Y:$278B3C,4,16 #define Mtr1STD0_23 M180 #define Mtr2STD0_23 M280 #define Mtr3STD0_23 M380 #define Mtr4STD0_23 M480 #define Mtr5STD0_23 M580 #define Mtr6STD0_23 M680 #define Mtr7STD0_23 M780 #define Mtr8STD0_23 M880 Mtr1STD0_23->Y:$278B20,0,24 Mtr2STD0_23->Y:$278B24,0,24 Mtr3STD0_23->Y:$278B28,0,24 Mtr4STD0_23->Y:$278B2C,0,24 Mtr5STD0_23->Y:$278B20,0,24 Mtr6STD0_23->Y:$278B34,0,24 Mtr7STD0_23->Y:$278B38,0,24 Mtr8STD0_23->Y:$278B3C,0,24 #define Mtr1STD4_23 M180 #define Mtr2STD4_23 M280 #define Mtr3STD4_23 M380 #define Mtr4STD4_23 M480 #define Mtr5STD4_23 M580 #define Mtr6STD4_23 M680 #define Mtr7STD4_23 M780 #define Mtr8STD4_23 M880 Mtr1STD4_23->Y:$278B20,4,20 Mtr2STD4_23->Y:$278B24,4,20 Mtr3STD4_23->Y:$278B28,4,20 Mtr4STD4_23->Y:$278B2C,4,20 Mtr5STD4_23->Y:$278B20,4,20 Mtr6STD4_23->Y:$278B34,4,20 Mtr7STD4_23->Y:$278B38,4,20 Mtr8STD4_23->Y:$278B3C,4,20 A one-time simple test (per installation) is performed on an unloaded motor to find the motor phase position offset: Enable the Absolute position read PLC. Previously created in the feedback section. Record the values of Ixx29, and Ixx79 to restore them at the end of test. Set Ixx29=0, and write a positive value to Ixx79 then issue a #nO0. 500 is a reasonably conservative value for Ixx79 to start with. Adjust appropriately (most likely increase) to force the motor (unloaded) to lock tightly onto a phase. Record the Single-Turn Data value (defined in the table above) and store in the user defined motor phase offset. Issue a #nK to kill the motor Restore Ixx29, and Ixx79 to their original values Yaskawa Absolute Encoders Motor Phase Offset (found from above test procedure) 16-bit 17-bit 20-bit #define PhaseOffset_16Bit P184 PhaseOffset_16Bit=5461 #define PhaseOffset_17Bit P184 PhaseOffset_17Bit=10922 #define PhaseOffset_20Bit P184 PhaseOffset_20Bit=30000 Appropriate masking is required with 17-bit encoders to process the data correctly. Note Motor Setup 191 Geo Brick LV User Manual Absolute Power-On Phasing Example PLCs (Yaskawa): With the motor phase position offset established, the phase position register can now be modified on power-up to compensate for the calculated offset. This allows the user to issue jog commands or close the loop and run a motion program on power-up or reset. Channel 1 driving a 16-bit Yaskawa absolute encoder #define Mtr1PhasePos M171 ; Suggested M-Variables Mtr1PhasePos->X:$B4,24,S #define Mtr1PhaseErr M148 ; Suggested M-Variables Mtr1PhaseErr->Y:$C0,8 #define Mtr1CommSize I171 ; #define Mtr1CommCycles I170 ; #define Mtr1CommRatio P170 ; Motor 1 commutation cycle size (Ixx71/Ixx70 counts) Mtr1CommRatio=Mtr1CommSize/Mtr1CommCycles Open plc 1 clear Mtr1PhasePos = ((Mtr1STD4_15 % Mtr1CommRatio) - PhaseOffset_16Bit) * 32 * Mtr1CommCycles Mtr1PhaseErr = 0 Disable plc 1 Close Channel 1 driving a 17-bit Yaskawa absolute encoder #define Mtr1PhasePos M171 ; Suggested M-Variables Mtr1PhasePos->X:$B4,24,S #define Mtr1PhaseErr M148 ; Suggested M-Variables Mtr1PhaseErr->Y:$C0,8 #define Mtr1CommSize I171 #define Mtr1CommCycles I170 #define Mtr1CommRatio P170 ; Motor 1 commutation cycle size (Ixx71/Ixx70 counts) Mtr1CommRatio=Mtr1CommSize/Mtr1CommCycles Open plc 1 clear Mtr1PhasePos = ((Int((Mtr1STD0_23&$1FFFF0)/$F) % Mtr1CommRatio) - PhaseOffset_17Bit) * 32 * Mtr1CommCycles Mtr1PhaseErr = 0 Disable plc 1 Close Channel 1 driving a 20-bit Yaskawa absolute encoder #define Mtr1PhasePos M171 ; Suggested M-Variables Mtr1PhasePos->X:$B4,24,S #define Mtr1PhaseErr M148 ; Suggested M-Variables Mtr1PhaseErr->Y:$C0,8 #define Mtr1CommSize I171 #define Mtr1CommCycles I170 #define Mtr1CommRatio P170 ; Motor 1 commutation cycle size (Ixx71/Ixx70 counts) Mtr1CommRatio=Mtr1CommSize/Mtr1CommCycles #define TwoToThe20th 1048576 Open plc 1 clear If (Mtr1STD4_23 !< PhaseOffset_20Bit) Mtr1PhasePos = (Mtr1STD4_23 - PhaseOffset_20Bit) * 32 Else Mtr1PhasePos = (TwoToThe20th - PhaseOffset_20Bit + Mtr1STD4_23) * 32 EndIf Mtr1PhaseErr = 0; Disable plc 1 Close Note Motor Setup It is highly recommended to try the sequence in this PLC manually at first (using the terminal window). In some cases, the Motor Phase Position Offset has to be added instead of subtracted depending on the direction of the encoder mounting/decoding. The Geo Brick LV has no control on the direction of the serial encoder data 192 Geo Brick LV User Manual Open-Loop Test, Encoder Decode: I7mn0 Having phased the motor successfully, it is now possible to execute an open loop test. The open-loop test is critical to verify that the direction sense of the encoder is the same as the command output. A positive command should create a velocity and position counting in the positive direction; a negative command should create a velocity and position counting in the negative direction. The open-loop test can be done manually from the terminal window (e.g. #1O5) while gathering position, velocity data, or by simply monitoring the direction of the velocity in the position window. The PMACTuningPro2 Software provides an automatic open loop utility, which is convenient to use. A successful open-loop test should look like the following: The open loop magnitude (output) is adjustable, start off with 1 - 2 percent command output and increment gradually until you see a satisfactory result. Motor Setup 193 Geo Brick LV User Manual A failed open-loop test would either move the motor in the opposite direction of the command or lock it onto a phase, one the following plots may apply: General recommendation for troubleshooting unsuccessful open loop tests: 1. Re-phase motor and try again 2. An inverted saw tooth response, most times, indicate that the direction sense of the encoder is opposite to that of the command output. With Quadrature | Sinusoidal | HiperFace encoders: Change I7mn0 to 3 from 7 (default) or vice-versa. Make sure Ixx70 and Ixx71 are correct. HiperFace sends absolute encoder data on power-up. If the on-going position direction is reversed, one needs to make sure that the absolute data sent on power-up agrees with the new direction of the encoder. With Resolvers: Change the direction from clock wise to counter clock wise in the first encoder conversion table entry (see resolver feedback setup section). With Absolute Serial Encoders (EnDat, SSI, BiSS, Yaskawa): The Geo Brick LV has no control on the direction sense of the serial data stream. There are no software parameters that allow this change. Normally, the direction sense is set by jumpers or software at the encoder side. In this scenario, the commutation direction has to be reversed to match the encoder sense. This is usually done by swapping any two of the motor leads and rephasing. 3. If the motor locks in position (with an open loop command i.e.#nO5 ) like a stepper motor, then the phasing has failed, and most times this indicates that the commutation cycle size is setup wrong (check Ixx70, Ixx71). Also it could indicate that the encoder sense is reversed. Halls Phasing (where applicable) needs to be re-configured if the motor direction is reversed. Note Motor Setup 194 Geo Brick LV User Manual Position-Loop PID Gains: Ixx30…Ixx39 The position-loop tuning is done as in any Turbo PMAC PID-Loop setup. The PMACTuningPro2 automatic or interactive utility can be used for fine tuning. WARNING Remember to perform an Open Loop Test after phasing and before trying to close the loop on the motor to make sure that the encoder decode (I7mn0) is correct. A positive open loop command should result in positive direction (of the encoder) motion and vice-versa. Good Open Loop Test Acceptable Step and Parabolic position responses should look like the following: Position Step Response Motor Setup Position Parabolic Response 195 Geo Brick LV User Manual DC Brush Motor Software Setup Before you start Remember to create/edit the motor type and protection power-on PLC At this point of the setup it is assumed that the encoder has been wired and configured correctly in the Encoder Feedback section. And that moving the motor/encoder shaft by hand shows encoder counts in the position window. Parameters with Comments ending with -User Input require the user to enter information pertaining to their system/hardware. Downloading and using the suggested M-variables is highly recommended. Detailed description of motor setup parameters can be found in the Turbo SRM Link Phasing Search Error Bit, Current-Loop Integrator Output (Ixx96) On power-up, the phasing search error bit has to be cleared to allow motor move commands to DC Brush motors. The current-loop integrator output should not be allowed to build up over time. The motor (nonexistent) direct current-loop output should be zero-ed periodically. This is equivalent, but more efficient than setting Ixx96 to 1. M148->Y:$C0,8,1 M248->Y:$140,8,1 M348->Y:$1C0,8,1 M448->Y:$240,8,1 M548->Y:$2C0,8,1 M648->Y:$340,8,1 M748->Y:$3C0,8,1 M848->Y:$440,8,1 ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 Phasing Phasing Phasing Phasing Phasing Phasing Phasing Phasing M129->Y:$BC,0,24,U M229->Y:$13C,0,24,U M329->Y:$1BC,0,24,U M429->Y:$23C,0,24,U M529->Y:$2BC,0,24,U M629->Y:$33C,0,24,U M729->Y:$3BC,0,24,U M829->Y:$43C,0,24,U ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 Direct Direct Direct Direct Direct Direct Direct Direct I196,8,100=1 ; Turbo PMAC PWM control for Brush motor. ; This will ensure zero direct current loop output tuning Open plc 1 clear If (M148=1) CMD"M148,8,100=0" EndIF M129=0 M229=0 M329=0 M429=0 M529=0 M629=0 M729=0 M829=0 Close error error error error error error error error fault fault fault fault fault fault fault fault Current-Loop Current-Loop Current-Loop Current-Loop Current-Loop Current-Loop Current-Loop Current-Loop bit bit bit bit bit bit bit bit Integrator Integrator Integrator Integrator Integrator Integrator Integrator Integrator Output Output Output Output Output Output Output Output ; Clear Phasing Error Bit ; Axis1-4 Zero Current-Loop Integrator Output ; Axis5-8 Zero Current-Loop Integrator Output ; For Brush Motor Control, PLC has to be executing periodically Remember to configure the Tuning software to allow this PLC to run while performing position loop tuning. Note Motor Setup 196 Geo Brick LV User Manual Flags, Commutation, Phase Angle, ADC Mask: Ixx24, Ixx01, Ixx72, Ixx84 I124,8,100=$800001 I101,8,100=1 I172,8,100=512 I184,8,100=$FFFC00 ; ; ; ; Motors Motors Motors Motors 1-8 1-8 1-8 1-8 Flag control, High true amp fault (Geo Brick LV specific) Commutation enabled Commutation phase angle (Geo Brick LV specific) Current-Loop Feedback Mask Word (Geo Brick LV specific) PWM Scale Factor: Ixx66 If Motor Rated Voltage > Bus Voltage: I166=0.95 * I7000 ; Motor #1 PWM Scale Factor, typical setting I266=I166 I366=I166 I466=I166 ; Assuming same motor(s) as motor #1 I566=I166 I666=I166 I766=I166 I866=I166 ; Assuming same motor(s) as motor #1 If Bus Voltage > Motor Rated Voltage: Ixx66 acts as a voltage limiter. In order to obtain full voltage output it is set to about 10% over PWM count divided by DC Bus/Motor voltage ratio: #define DCBusInput 60 ; DC Bus Voltage -User Input #define #define #define #define #define #define #define #define 24 24 24 24 24 24 24 24 ; ; ; ; ; ; ; ; Mtr1Voltage Mtr2Voltage Mtr3Voltage Mtr4Voltage Mtr5Voltage Mtr6Voltage Mtr7Voltage Mtr8Voltage Motor Motor Motor Motor Motor Motor Motor Motor I166=I7000*Mtr1Voltage/DCBusInput I266=I7000*Mtr2Voltage/DCBusInput I366=I7000*Mtr3Voltage/DCBusInput I466=I7000*Mtr4Voltage/DCBusInput I566=I7000*Mtr5Voltage/DCBusInput I666=I7000*Mtr6Voltage/DCBusInput I766=I7000*Mtr7Voltage/DCBusInput I866=I7000*Mtr8Voltage/DCBusInput 1 2 3 4 5 6 7 8 ; ; ; ; ; ; ; ; Rated Rated Rated Rated Rated Rated Rated Rated Motor Motor Motor Motor Motor Motor Motor Motor Voltage Voltage Voltage Voltage Voltage Voltage Voltage Voltage 1 2 3 4 5 6 7 8 PWM PWM PWM PWM PWM PWM PWM PWM [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User [VDC]-User Scale Scale Scale Scale Scale Scale Scale Scale Input Input Input Input Input Input Input Input Factor Factor Factor Factor Factor Factor Factor Factor Current Feedback Address: Ixx82 I182=$078006 I282=$07800E I382=$078016 I482=$07801E I582=$078106 I682=$07810E I782=$078116 I882=$07811E Motor Setup ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 Current Current Current Current Current Current Current Current Feedback Feedback Feedback Feedback Feedback Feedback Feedback Feedback Address Address Address Address Address Address Address Address 197 Geo Brick LV User Manual Commutation Cycle Size: Ixx70, Ixx71 Set to zero with DC brush motors, commutation is done mechanically. I170=0 I270=0 I370=0 I470=0 I570=0 I670=0 I770=0 I870=0 I171=0 I271=0 I371=0 I471=0 I571=0 I671=0 I771=0 I871=0 ; ; ; ; ; ; ; ; Motor Motor Motor Motor Motor Motor Motor Motor 1 2 3 4 5 6 7 8 size size size size size size size size and and and and and and and and number number number number number number number number of of of of of of of of commutation commutation commutation commutation commutation commutation commutation commutation cycles cycles cycles cycles cycles cycles cycles cycles I2T Protection, Magnetization Current: Ixx57, Ixx58, Ixx69, Ixx77 The lower values (tighter specifications) of the Continuous/Instantaneous current ratings between the Geo Brick LV and motor are chosen to setup I2T protection. If the peak current limit chosen is that of the Geo Brick LV (e.g. 15 Amps) then the time allowed at peak current is set to 1 seconds. If the peak current limit chosen is that of the Motor, check the motor specifications for time allowed at peak current. Examples: For setting up I2T on a Geo Brick LV driving a 3A/9A motor, 3 amps continuous and 9 amps instantaneous will be used as current limits. And time allowed at peak is that of the motor. For setting up I2T on a Geo Brick LV driving a 4A/16A motor, 4 amps continuous and 15 amps instantaneous will be used as current limits. And time allowed at peak is 1 seconds. Motors 1 thru 8 have 5-amp continuous, 15-amp peak current limits. #define ServoClk P8003 ; [KHz] Computed in Dominant Clock Settings Section #define #define #define #define 5 15 33.85 1 ; ; ; ; ContCurrent PeakCurrent MaxADC I2TOnTime Continuous Current Limit [Amps] –User Input Instantaneous Current Limit [Amps] –User Input Brick LV full range ADC reading (see electrical specifications) Time allowed at peak Current [sec] I157=INT(32767*(ContCurrent*1.414/MaxADC)*cos(30)) I169=INT(32767*(PeakCurrent*1.414/MaxADC)*cos(30)) I158=INT((I169*I169-I157*I157)*ServoClk*1000*I2TOnTime/(32767*32767)) I257=I157 I357=I157 I457=I157 I557=I157 I657=I157 I757=I157 I857=I157 I258=I158 I358=I158 I458=I158 I558=I158 I658=I158 I758=I158 I858=I158 Note Motor Setup I269=I169 I369=I169 I469=I169 I569=I169 I669=I169 I769=I169 I869=I169 This software I2T is designed to primarily protect the motor. The Geo Brick LV’s hardware built-in I2T protects the amplifier and presents an added layer of system safety. 198 Geo Brick LV User Manual ADC Offsets: Ixx29, Ixx79 The ADC offsets importance may vary from one system to another, depending on the motor(s) type and application requirements. They can be left at default of zero especially if a motor setup is to be reproduced on multiple machines by copying the configuration file of the first time integration. However, they should ultimately be set to minimize measurement offsets from the A and B-phase current feedback circuits, respectively (read in Suggested M-variables Mxx05, Mxx06). Geo Brick LVs dating 10/1/2012 and later perform automatic ADC offset compensation. Leave Ixx29 and Ixx79 at zero. Note Current-Loop Gains, Open-Loop/Enc. Decode: Ixx61, Ixx62, Ixx76, I7mn0 Tuning (fine) the current loop with DC brush motors is neither critical nor required. Set Ixx61 to a conservative value (i.e. 0.001) and perform an open-loop test. Essentially a positive open loop command should result in position direction (of the encoder) motion and vice-versa: Reversed Encoder Decode. I7mn0 needs adjustment Once the Encoder Decode is verified, increment Ixx61 gradually and redo the Open-Loop test until a solid saw tooth response is observed. Note that further increasing Ixx61 will not improve the performance. Correct Encoder Decode - Acceptable Open-Loop Response Motor Setup 199 Geo Brick LV User Manual Position-Loop PID Gains: Ixx30…Ixx39 The position-loop tuning is done as in any Turbo PMAC PID-Loop setup. The PMACTuningPro2 automatic or interactive utility can be used to fine-tune the PID-Loop. Acceptable Step and Parabolic position responses would look like: Position Step Move Position Parabolic Move Motor Setup 200 Geo Brick LV User Manual MACRO CONNECTIVITY Introduction to MACRO MACRO Ring for Distributed Motion Control - www.macro.org MACRO stands for Motion and Control Ring Optical. It is a high bandwidth non-proprietary digital interface industrialized by Delta Tau Data Systems for distributed multi-axis systems. MACRO can be connected using either fiber optic or twisted copper pair RJ45 cables. The RJ45 electrical interface can extend to up to 30 meters (or about 100 feet), and the fiber optic interface can extend to up to 3 kilometers (or about 2 miles). The following are some of the many advantages which MACRO offers: Noise Immunity: MACRO transfers data using light rather than electricity which renders it immune to electromagnetic noise and capacitive coupling. Wiring Simplicity: Single-plug connection between controllers, amplifiers, and I/O modules minimizing wiring complexity in large systems. High Speed: data transfer rate at 125 Megabits per second, and servo update rates as high as 65 KHz. Centralized, Synchronized Control: No software intervention is required on the MACRO stations. One or multiple rings can be controlled, synchronized, and accessed using a single ring controller. The following diagram depicts the general formation of a simple MACRO ring. Station # … (Motors, I/Os) Station # 2 (Motors, I/Os) Station # n (Motors, I/Os) Station # 1 (Motors, I/Os) Ring Controller Note MACRO Connectivity It is possible to have multiple/redundant rings and master/controllers in one system. For simplicity, we will limit the discussion in the following section(s) to the basic setting parameters of a single MACRO ring and controller. Also, we will address the stations as slaves and the ring controller as master. 201 Geo Brick LV User Manual MACRO Configuration Examples The Geo Brick LV with its’ MACRO interface supports a wide variety of MACRO ring formations. The following common MACRO configurations are described in detail: Configuration Example MACRO Ring Controller (Master) MACRO Ring Slave(s) Configuration Type 1 Geo Brick LV Geo Brick LV (DC Brush/Brushless motors) MACRO Auxiliary 2 Geo Brick LV Geo Brick LV (Stepper motors) MACRO Auxiliary 3 Geo Brick LV Geo MACRO Drive MACRO Slave Notice that the Geo Brick LV can be either a Master or a Slave in a MACRO Ring. Whenever the Geo Brick LV is a slave, the MACRO configuration is called MACRO auxiliary. This is a designation which was implemented in the firmware for the Brick family of controllers. If the Geo Brick LV is a master and the station(s) consist of traditional MACRO hardware (e.g. Geo MACRO Drive, ACC-65M etc.) then the MACRO configuration is called MACRO Slave. This is the typical designation which supports the majority of MACRO compatible amplifiers and peripherals. Note The Geo Brick LV MACRO option is populated with 1 MACRO IC, which consists of 8 servo nodes (motors/encoders) and 6 I/O nodes (432 I/O points) Configuring a MACRO Auxiliary ring requires communicating (via USB, Ethernet, or serial) separately to both the master and slave. Note MACRO Connectivity 202 Geo Brick LV User Manual Review: MACRO Nodes and Addressing Each MACRO IC consists of 16 nodes: 2 auxiliary, 8 servo and 6 I/O nodes: Auxiliary nodes are reserved for master/slave setting and internal firmware use Servo nodes are used for motor control carrying feedback, commands, and flag information I/O nodes are user configurable typically used in transferring general purpose data I/ O Nodes Node 15 14 13 12 11 10 9 8 Auxiliary Nodes 7 6 5 4 3 2 1 0 Servo Nodes Each I/O node consists of 4 registers; 1 x 24-bit and 3 x16-bit registers (upper): Geo Brick LV MACRO IC #0 Servo Node Registers 4 5 8 9 12 Node 24-bit 0 1 13 Y:$78420 Y:$78424 Y:$78428 Y:$7842C Y:$78430 Y:$78434 Y:$78438 Y:$7843C 16-bit Y:$78421 Y:$78425 Y:$78429 Y:$7842D Y:$78431 Y:$78435 Y:$78439 Y:$7843D 16-bit Y:$78422 Y:$78426 Y:$7842A Y:$7842E Y:$78432 Y:$78436 Y:$7843A Y:$7843E 16-bit Y:$78423 Y:$78427 Y:$7842B Y:$7842F Y:$78433 Y:$78437 Y:$7843B Y:$7843F Geo Brick LV MACRO IC #0 I/O Node Registers Node 2 3 6 7 10 11 24-bit X:$78420 X:$78424 X:$78428 X:$7842C X:$78430 X:$78434 16-bit X:$78421 X:$78425 X:$78429 X:$7842D X:$78431 X:$78435 16-bit X:$78422 X:$78426 X:$7842A X:$7842E X:$78432 X:$78436 16-bit X:$78423 X:$78427 X:$7842B X:$7842F X:$78433 X:$78437 MACRO Connectivity 203 Geo Brick LV User Manual Review: MACRO Auxiliary Commands In MACRO Auxiliary mode (Brick - Brick), master and slave data exchange (i.e. reads, writes) can be done using Macro Auxiliary MX commands. For simplicity, the following examples describe syntax commands intended to communicate with a slave unit associated with node 0. But ultimately, these commands can be used with any enabled node on the addressed slave. MACRO auxiliary commands are only valid from the master side. Note Online Commands: Syntax MX{anynode},{slave variable} MX{anynode},{slave variable}={constant} Example MX0,P1 MX0,P1=1 Description Read and report slave variable P1 Write a 1 to slave variable P1 Program “Buffer” Commands: Syntax Example Description MXR{anynode},{slave variable},{master variable} MXR0,P2,P1 Copy slave P2 into master P1 MXW{anynode},{slave variable},{master variable} MXW0,P2,P1 Copy master P1 into slave P2 Where: {anynode} is a constant (0 to 63) representing the number of any node activated on the slave. {slave variable} is the name of the variable at the slave side. It can be I, P, Q, or M-variable with a number from 0 to 8191. {master variable} is the name of the variable at the master side. It can be I, P, Q, or M-variable with a number from 0 to 4095 (firmware limited). MACRO Connectivity 204 Geo Brick LV User Manual Configuration Example 1: Brick – Brick (Servo Motors) MACRO Ring Master MACRO Ring Slave Driving Brush/Brushless Motors This configuration supports two control modes: Torque Mode: Most commonly used and highly recommended due to setup simplicity and computational load sharing between Master and Slave. In this mode, the Master closes strictly the position loop and sends torque commands to the Slave. The Slave closes the current loop and handles the commutation of the motor. PWM Mode: Useful when centralized commutation and tuning (current & PID) are desirable. However, if the application involves Kinematics and/or high computation frequency, Torque Mode is advised. In this mode, the Master bypasses the Slave control functions. The Master handles the commutation, it closes both the current and position loops, and sends PWM commands directly to the Slaves’ power amplifier block. MACRO Connectivity 205 Geo Brick LV User Manual Setting up the Slave in Torque Mode 1. Establish communication to Slave unit using USB, Ethernet, or Serial. 2. Consider starting from factory default settings. This can be done by issuing a $$$*** followed by a Save, and a $$$. 3. Consider downloading the suggested M-Variables in the Pewin32Pro2 software. 4. Set up motors per the motor setup section described in this manual. I2T settings (Ixx57, and Ixx58) should be set for these motors on the master side. Is it ok to have them enabled temporarily while configuring the motors locally, but ultimately in normal mode operation (MACRO master-slave), I2T settings should be configured on the master side and set to zero (Ixx57 = 0, Ixx58 = 0) on the slave side. Ixx69 may remain as computed. Note In normal operation of MACRO master-slave, I2T settings (Ixx57 and Ixx58) should be configured on the master side and set to zero on the slave side. 5. Clock settings considerations The MACRO ring is synchronized at phase rate. Keep in mind that the phase clock frequency must be the same on both the master and the slave. The MACRO IC must be sourcing the clock (parameter I19). A Save followed by a $$$ are required whenever I19 is changed. It is advised to have both the MACRO and servo ICs set at the same phase frequency. I19 = I6800 I6801 I6802 6807 = I7000 = I7001 = I7002 ; ; ; ; Clock Macro Macro Macro source, MACRO IC 0 IC 0 MaxPhase/PWM Frequency Control IC 0 Phase Clock Frequency Control IC 0 Servo Clock Frequency Control 6. Make sure that the motors are fully operational and can be controlled in closed loop (e.g. jog commands). Position PID tuning is not critical at this point. Fine tuning of the slave motors should be eventually performed from the master side. 7. Kill all motors MACRO Connectivity 206 Geo Brick LV User Manual 8. MACRO ring settings I80, I81 and I82 enable the ring error check function. I85 specifies a station number which the slave unit is assigned to (e.g. multiple slave stations). I6840 specifies whether this is a master or a slave. I6841 specifies which MACRO nodes are enabled. Note, that it is not advised to enable nodes which will not be used. I85=1 ; Station number #1 (if multiple slaves) – User Input I6840=$4080 I6841=$0FF333 ; Macro IC0 Ring Configuration/Status, typical slave setting ; Macro IC0 Node Activate Ctrl (Servo nodes 0, 1, 4, 5, 8, 9, 12, 13) – User Input #define RingCheckPeriod 20 ; Suggested Ring Check Period [msec] #define FatalPackErr 15 ; Suggested Fatal Packet Error Percentage [%] I80=INT(RingCheckPeriod *8388608/I10/(I8+1)+1) ; Macro Ring Check Period [Servo Cycles] I81=INT(I80* FatalPackErr /100+1) ; Macro Maximum Ring Error Count I82=I80-I81*4 ; Macro Minimum Sync Packet Count 9. Flag Control Ixx24, disable over-travel limits on slave side (enable on master side) I124,8,100=$820001 ; Disable over-travel limits channels 1-8 10. MACRO slave command address Ixx44 specifies the MACRO command address and mode for slave motors. I144=$178423 I244=$178427 I344=$17842B I444=$17842F I544=$178433 I644=$178437 I744=$17843B I844=$17843F ; ; ; ; ; ; ; ; Macro Macro Macro Macro Macro Macro Macro Macro IC0 IC0 IC0 IC0 IC0 IC0 IC0 IC0 Node Node Node Node Node Node Node Node 0 1 4 5 8 9 12 13 Command Command Command Command Command Command Command Command Address. Address. Address. Address. Address. Address. Address. Address. Torque Torque Torque Torque Torque Torque Torque Torque Mode Mode Mode Mode Mode Mode Mode Mode Setting Ixx44 to the MACRO command register hands control of the motors to the master. To allow motor commands from the slave again, Ixx44 needs to be set back to default of zero. Ixx44 must be set for at least one channel to allow MACRO auxiliary mode communication, thus enabling MX commands. Note 11. Issue a Save followed by a reset $$$ to maintain changes. MACRO Connectivity 207 Geo Brick LV User Manual The slave motors should be phased (if commutated) before setting Ixx44. This can be done through a handshaking PLC and using MACRO auxiliary MX commands to trigger the phase routine. Slave Handshaking PLC Example: Phase then kill Motor#1 M133->X:$0000B0,13,1 M140->Y:$0000C0,0,1 P8000=0 ; Mtr1 Desired Velocity bit ; Mtr1 In-position bit ; Handshaking flag Open PLC 1 Clear IF (P8000 = 1) CMD"#1K" I5111= 250 *8388608/I10 While(I5111>0) EndW I144=0 ; Turn Auxiliary Control off I5111= 250 *8388608/I10 While(I5111>0) EndW CMD"#1$" I5111= 250 *8388608/I10 While(I5111>0) EndW While (M133 = 0 OR M140 = 0) EndW CMD"#1K" I5111= 250 *8388608/I10 While(I5111>0) EndW I144=$178423 ; Turn Auxiliary Control on I5111= 250 *8388608/I10 While(I5111>0) EndW P8000 = 0 EndIf Close Issuing MX0,P8000=1 from the master will then initiate the phasing routine. Note about Slave Motors’ I2T I2T setting parameters, Ixx69, Ixx57 and Ixx58, should be configured properly, for complete protection, when the motor is controlled locally. I2T setting parameters, Ixx57 and Ixx58, should be set to zero on the slave side when it is in auxiliary mode, and configured for the corresponding channel over MACRO (on the master side). As a rule of thumb, and for a given channel: If Ixx44 =0 != 0 Slave Master Ixx57 as computed Ixx58 as computed Ixx69 as computed Ixx57 as computed Ixx58 as computed Ixx57 = 0 Ixx69 as computed Ixx58 = 0 Ixx69 as computed On the master side, the computed values from the slave can be copied into the corresponding motor MACRO channel. MACRO Connectivity 208 Geo Brick LV User Manual Setting up the Master in Torque Mode 1. Establish communication to the master using USB, Ethernet, or Serial. 2. Consider starting from factory default settings. This can be done by issuing a $$$*** followed by a Save, and a reset $$$. 3. Consider downloading the suggested M-Variables in the Pewin32Pro2 software. 4. The master’s motors can now be set up as described in the motor setup section of this manual. Typically, these are motors #1 through #4 (or #8). 5. Clock settings considerations The MACRO ring is synchronized at phase rate. The phase clock frequency must be the same on the master and each of the slaves. It is advised that the MACRO and servo ICs be set to the same phase frequency. I6800 = I7000 I6801 = I7001 I6802 = I7002 ; Macro IC0 MaxPhase/PWM Frequency Control ; Macro IC0 Phase Clock Frequency Control ; Macro IC0 Servo Clock Frequency Control 6. MACRO ring settings I80, I81 and I82 enable the ring error check function. I6840 specifies whether this is a master or a slave. I6841 specifies which MACRO nodes are enabled. Note, that it is not advised to enable nodes which will not be used. I6840=$4030 I6841=$0FF333 I78=32 I70=$3333 I71=0 ; ; ; ; ; Macro IC0 Ring Configuration/Status, typical master IC setting Macro IC0 Node Activate Ctrl (Servo nodes 0, 1, 4, 5, 8, 9, 12, 13) – User Input Macro Type 1 Master/Slave Communications Timeout Macro IC 0 Node Auxiliary Register Enable (for 8 macro motors) Type 0 MX Mode #define RingCheckPeriod 20 ; Suggested Ring Check Period [msec] #define FatalPackErr 15 ; Suggested Fatal Packet Error Percentage [%] I80=INT(RingCheckPeriod *8388608/I10/(I8+1)+1) ; Macro Ring Check Period [Servo Cycles] I81=INT(I80* FatalPackErr /100+1) ; Macro Maximum Ring Error Count I82=I80-I81*4 ; Macro Minimum Sync Packet Count 7. Issue a Save, followed by a reset ($$$) to maintain changes. 8. Activating MACRO motors, Flag Control The master Geo Brick LV can be fitted with 1 or 2 servo ICs to service local channels (4 or 8). The next available channel will be the first macro/slave motor. This allows taking advantage of some of the default MACRO settings set by the firmware upon detecting a MACRO IC. If I4900 = $1, then only Servo IC 0 is present, and the first macro motor is #5 I500,8,100=1 I524,8,100=$840001 ; Activate channels 5-12 ; Channels 5-12 flag control ($860001 to disable limits) If I4900 = $3, then Servo ICs 0 and 1 are present, and the first macro motor is #9 I900,8,100=1 I924,8,100=$840001 MACRO Connectivity ; Activate channels 9-16 ; Channels 9-16 flag control ($860001 to disable limits) 209 Geo Brick LV User Manual 9. Position And Velocity Pointers If all local motors have digital quadrature encoders (or 1-line ECT entries), and no other entries are used in the Encoder Conversion Table then the position (Ixx03) and Velocity (Ixx04) pointers of the MACRO motors are valid by default (set by firmware) and need not be changed: MACRO motor Motor # Ixx03, Ixx04 MACRO motor Motor # 1st 5 or 9 $350A 5th 9 or 13 $3512 $350C th 10 or 14 $3514 th 11 or 15 $3516 th 12 or 16 $3518 2 nd 3 rd 4 th 6 or 10 7 or 11 8 or 12 $350E $3510 6 7 8 Ixx03, Ixx04 However, if the Encoder Conversion Table has been modified then the MACRO motors/nodes entries need to be configured properly. This can be done using the Encoder Conversion Table utility in the PewinPro2 under Configure>Encoder Conversion Table: a. b. c. d. e. f. Click on End of Table to access the next available entry Conversion Type: Parallel position from Y word with no filtering No Shifting Width in Bits: 24 Source Address: Servo node Address (See table below) Record the processed data address. This is where the position and velocity pointers will be set to for a specific node/motor number. E.g. I903,2=$351A g. Repeat steps for additional motors/servo nodes MACRO Connectivity 210 Geo Brick LV User Manual Servo Node Addresses MACRO motor Motor # Address 1st 5 or 9 $78420 2 nd 3 rd th 4 6 or 10 7 or 11 8 or 12 Note $78424 $78428 $7842C Register MACRO motor Motor # Servo Node 0 5th Servo Node 1 th th th Servo Node 4 Servo Node 5 6 7 8 Address Register 9 or 13 $78430 Servo Node 8 10 or 14 $78434 Servo Node 9 11 or 15 $78438 Servo Node 12 12 or 16 $7843C Servo Node 13 At this point of the setup, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window 10. The flag address Ixx25 is initiated by default in the firmware. MACRO motor Motor # Ixx25 1st 5 or 9 $3440 2 nd rd 3 th 4 6 or 10 7 or 11 8 or 12 $3441 $3444 $3445 Register MACRO motor Motor # Servo Node 0 5th Servo Node 1 th th th Servo Node 4 Servo Node 5 6 7 8 Ixx25 Register 9 or 13 $3448 Servo Node 8 10 or 14 $3449 Servo Node 9 11 or 15 $344C Servo Node 12 12 or 16 $344D Servo Node 13 11. The motor command output address Ixx02 is initiated by default in the firmware MACRO motor Motor # Ixx02 Register MACRO motor Motor # Ixx02 Register 1st 5 or 9 $078420 Servo Node 0 5th 9 or 13 $078430 Servo Node 8 2nd 6 or 10 $078424 Servo Node 1 6th 10 or 14 $078434 Servo Node 9 Servo Node 4 th 11 or 15 $078438 Servo Node 12 th 12 or 16 $07843C Servo Node 13 3 rd 4 th 7 or 11 8 or 12 $078428 $07842C Servo Node 5 7 8 12. Make sure that the slave motors are phased (e.g. MX0,P8000=1 to initiate the slave phasing routine). Note It is probably wise at this point, and before trying to close the loop, to perform some open loop commands/test (e.g. #nO0). This will ensure the capability of enabling the slave amplifier(s). 13. Tuning the PID-Loop The PID gains saved on the slave initially can be a good starting point. Otherwise, tuning (from the master) can be carried out in the traditional manner - see motor setup section in this manual - there are no special instructions for tuning the MACRO/slave motors. MACRO Connectivity 211 Geo Brick LV User Manual Setting up the Slave in PWM Mode 1. Establish communication to the slave using USB, Ethernet, or Serial. 2. Consider starting from factory default settings. This can be done by issuing a $$$*** followed by a Save, and a reset $$$. 3. Consider downloading the suggested M-Variables in the Pewin32Pro2 software. 4. Clock settings considerations The MACRO ring is synchronized at phase rate. Keep in mind that the phase clock frequency must be the same on both the master and the slave. The MACRO IC must be sourcing the clock (parameter I19). A Save followed by a $$$ are required whenever I19 is changed. It is advised to have both the MACRO and servo ICs set at the same phase frequency. I19 = I6800 I6801 I6802 6807 = I7000 = I7001 = I7002 ; ; ; ; Clock Macro Macro Macro source, MACRO IC 0 IC 0 MaxPhase/PWM Frequency Control IC 0 Phase Clock Frequency Control IC 0 Servo Clock Frequency Control 5. MACRO ring settings I80, I81 and I82 enable the ring error check function. I85 specifies a station number which the slave unit is assigned to (e.g. multiple slave stations). I6840 specifies whether this is a master or a slave. I6841 specifies which MACRO nodes are enabled. Note, that it is not advised to enable nodes which will not be used. Ixx44 specifies the MACRO command address and mode for slave motors. I85=1 ; Station number #1 (if multiple slaves) – User Input I6840=$4080 I6841=$0FF333 ; Macro IC 0 Ring Configuration/Status ; Macro IC 0 Node Activate Ctrl (servo nodes 0, 1, 4, 5, 8, 9, 12, and 13) I124,8,100=$820001 ; Flag mode control, disable limits on slave (enable on master) #define RingCheckPeriod 20 ; Suggested Ring Check Period [msec] #define FatalPackErr 15 ; Suggested Fatal Packet Error Percentage [%] I80=INT(RingCheckPeriod *8388608/I10/(I8+1)+1) ; Macro Ring Check Period [Servo Cycles] I81=INT(I80* FatalPackErr /100+1) ; Macro Maximum Ring Error Count I82=I80-I81*4 ; Macro Minimum Sync Packet Count I144=$078423 I244=$078427 I344=$07842B I444=$07842F I544=$078433 I644=$078437 I744=$07843B I844=$07843F ; ; ; ; ; ; ; ; MacroIC0 MacroIC0 MacroIC0 MacroIC0 MacroIC0 MacroIC0 MacroIC0 MacroIC0 Node 0 Node 1 Node 4 Node 5 Node 8 Node 9 Node12 Node13 Command Command Command Command Command Command Command Command Address. Address. Address. Address. Address. Address. Address. Address. PWM PWM PWM PWM PWM PWM PWM PWM Mode Mode Mode Mode Mode Mode Mode Mode 6. Issue a Save followed by a $$$ to maintain changes. MACRO Connectivity 212 Geo Brick LV User Manual Setting up the Master in PWM Mode 1. Establish communication to the Geo Brick LV using USB, Ethernet, or Serial. 2. Consider starting from factory default settings. This can be done by issuing a $$$*** followed by a Save, and a reset ($$$). 3. Consider downloading the suggested M-Variables in the Pewin32Pro2 software. 4. The master’s motors can now be set up as described in the motor setup section of this manual. These are motors #1 through #8 (or #4 if it is a 4-axis Geo Brick LV). 5. Clock settings considerations The MACRO ring is synchronized at phase rate. The phase clock frequency must be the same on the master and each of the slaves (Geo MACRO Drives). It is also advised that the MACRO and servo ICs be set to the same phase frequency. I6800 = I7000 I6801 = I7001 I6802 = I7002 ; Macro IC0 MaxPhase/PWM Frequency Control ; Macro IC0 Phase Clock Frequency Control ; Macro IC0 Servo Clock Frequency Control Note It is not necessary for the master to have the MACRO IC sourcing the clock. But if it is desired, I19 can be simply set to 6807 followed by a save and a reset ($$$). 6. MACRO ring settings I80, I81 and I82 enable the ring error check function. I6840 specifies whether this is a master or a slave. I6841 specifies which MACRO nodes are enabled. Note, that it is not advised to enable nodes which will not be used. I6840=$4030 I6841=$0FF333 I78=32 I70=$3333 I71=0 ; ; ; ; ; Macro IC 0 Ring Configuration/Status Macro IC 0 Node Activate Ctrl 8-axis (servo nodes 0, 1, 4, 5, 8, 9, 12, 13) Macro Type 1 Master/Slave Communications Timeout Macro IC 0 Node Auxiliary Register Enable (for 8 Ring motors) Type 0 MX Mode #define RingCheckPeriod 20 ; Suggested Ring Check Period [msec] #define FatalPackErr 15 ; Suggested Fatal Packet Error Percentage [%] I80=INT(RingCheckPeriod *8388608/I10/(I8+1)+1) ; Macro Ring Check Period [Servo Cycles] I81=INT(I80* FatalPackErr /100+1) ; Macro Maximum Ring Error Count I82=I80-I81*4 ; Macro Minimum Sync Packet Count 7. Issue a Save, followed by a reset ($$$) to maintain changes. MACRO Connectivity 213 Geo Brick LV User Manual 8. Activating MACRO motors, Flag Control The master Geo Brick LV can be fitted with 1 or 2 servo ICs to service local channels (4 or 8). The next available channel will be the first macro/slave motor. This allows taking advantage of some of the default MACRO settings set by the firmware upon detecting a MACRO IC. If I4900 = $1, then only Servo IC 0 is present, and the first macro motor is #5 I500,8,100=1 I524,8,100=$840001 ; Activate channels 5-12 ; Channels 5-12 flag control ($860001 to disable limits) If I4900 = $3, then Servo ICs 0 and 1 are present, and the first macro motor is #9 I900,8,100=1 I924,8,100=$840001 ; Activate channels 9-18 ; Channels 9-18 flag control ($860001 to disable limits) 9. Position And Velocity Pointers If all local motors have digital quadrature encoders (1-line ECT entries), and no other entries are used in the Encoder Conversion Table then the position (Ixx03) and Velocity (Ixx04) pointers of the MACRO motors are valid by default (set by firmware) and need not be changed: MACRO motor Motor # Ixx03, Ixx04 MACRO motor Motor # 1st 5 or 9 $350A 5th 9 or 13 $3512 $350C th 10 or 14 $3514 th 11 or 15 $3516 th 12 or 16 $3518 2 nd 3 rd 4 th 6 or 10 7 or 11 8 or 12 $350E $3510 6 7 8 Ixx03, Ixx04 However, if the Encoder Conversion Table has been modified then the MACRO motors/nodes entries need to be configured properly. This can be done using the Encoder Conversion Table utility in the PewinPro2 under Configure>Encoder Conversion Table: a. b. c. d. e. f. Click on End of Table to access the next available entry Conversion Type: Parallel position from Y word with no filtering No Shifting Width in Bits: 24 Source Address: Servo node Address (See table below) Record the processed data address. This is where the position and velocity pointers will be set to for a specific node/motor number. E.g. I903,2=$351A g. Repeat steps for additional motors/servo nodes MACRO Connectivity 214 Geo Brick LV User Manual Servo Node Addresses MACRO motor Motor # Address 1st 5 or 9 $78420 2 nd 3 rd th 4 6 or 10 7 or 11 8 or 12 Note MACRO Connectivity $78424 $78428 $7842C Register MACRO motor Motor # Servo Node 0 5th Servo Node 1 th th th Servo Node 4 Servo Node 5 6 7 8 Address Register 9 or 13 $78430 Servo Node 8 10 or 14 $78434 Servo Node 9 11 or 15 $78438 Servo Node 12 12 or 16 $7843C Servo Node 13 At this point of the setup, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window 215 Geo Brick LV User Manual 10. The flag address Ixx25 for MACRO motors is initiated by default in the firmware. MACRO motor Motor # Ixx25 1st 5 or 9 $3440 2 nd rd 3 th 4 6 or 10 7 or 11 8 or 12 $3441 $3444 $3445 Register MACRO motor Motor # Servo Node 0 5th Servo Node 1 th th th Servo Node 4 Servo Node 5 6 7 8 Ixx25 Register 9 or 13 $3448 Servo Node 8 10 or 14 $3449 Servo Node 9 11 or 15 $344C Servo Node 12 12 or 16 $344D Servo Node 13 11. The motor command output address Ixx02 is initiated by default in the firmware MACRO motor Motor # Ixx02 Register MACRO motor Motor # Ixx02 Register 1st 5 or 9 $078420 Servo Node 0 5th 9 or 13 $078430 Servo Node 8 2nd 6 or 10 $078424 Servo Node 1 6th 10 or 14 $078434 Servo Node 9 Servo Node 4 th 11 or 15 $078438 Servo Node 12 th 12 or 16 $07843C Servo Node 13 3 rd 4 th 7 or 11 8 or 12 $078428 $07842C Servo Node 5 7 8 12. The Flag Control Ixx24 is typically set to $840001 ($860001 to disable hardware over-travel limits). 13. The commutation position address Ixx83 is initiated by default in the firmware. MACRO motor Motor # Ixx83 Register MACRO motor Motor # Ixx83 Register 1st 5 or 9 $078420 Servo Node 0 5th 9 or 13 $078430 Servo Node 8 2nd 6 or 10 $078424 Servo Node 1 6th 10 or 14 $078434 Servo Node 9 3rd 7 or 11 $078428 Servo Node 4 7th 11 or 15 $078438 Servo Node 12 4th 8 or 12 $07842C Servo Node 5 8th 12 or 16 $07843C Servo Node 13 14. The commutation enable Ixx01 should be set to 3, indicating that commutation is performed from Yregisters (specified in Ixx83). 15. The current loop feedback address Ixx82 should be set per the following table: MACRO motor Motor # Ixx82 Register MACRO motor Motor # Ixx82 Register 1st 5 or 9 $078422 Servo Node 0 5th 9 or 13 $078432 Servo Node 8 2nd 6 or 10 $078426 Servo Node 1 6th 10 or 14 $078436 Servo Node 9 Servo Node 4 th 11 or 15 $07843A Servo Node 12 th 12 or 16 $07843E Servo Node 13 3 rd 4 th 7 or 11 8 or 12 MACRO Connectivity $07842A $07842E Servo Node 5 7 8 216 Geo Brick LV User Manual 16. The current feedback mask Ixx84 should be set to $FFFC00. 17. Commutation Cycle Size Ixx70 = {Number of pair poles} Ixx71 = {Number of counts per revolution * 32} 18. I2T Settings (example for motor #9): I15=0 #define MaxPhaseFreq P8000 #define PWMClk P8001 #define PhaseClk P8002 #define ServoClk P8003 MaxPhaseFreq=117964.8/(2*I6800+3) PWMClk=117964.8/(4*I6800+6) PhaseClk=MaxPhaseFreq/(I6801+1) ServoClk=PhaseClk/(I6802+1) ; ; ; ; ; Trigonometric calculation in degrees Max Phase Clock [KHz] PWM Clock [KHz] Phase Clock [KHz] Servo Clock [KHz] #define #define #define #define ; ; ; ; Continuous Current Limit [Amps] –User Input Instantaneous Current Limit [Amps] –User Input See slave electrical specifications –User Input Time allowed at peak Current [sec] Mtr9ContCurrent Mtr9PeakCurrent MaxADC Mtr9I2TOnTime 3 9 33.85 1 I957=INT(32767*(Mtr9ContCurrent*1.414/MaxADC)*cos(30)) I969=INT(32767*(Mtr9PeakCurrent*1.414/MaxADC)*cos(30)) I958=INT((I969*I969-I957*I957)*ServoClk*1000*Mtr9I2TOnTime/(32767*32767)) 19. Current-Loop Tuning (Ixx61, Ixx62, Ixx76) Current loop tuning is performed in the same manner as it would be for any digitally commuted amplifier. A satisfactory current loop response (PmacTuningPro2 screen shot) would look like: MACRO Connectivity 217 Geo Brick LV User Manual 20. Motor Phasing, Open-Loop Test Motor phasing is performed in the same manner as it would be for any digitally commutated motor. The following is a satisfactory open loop test: An erratic or inverted saw tooth response is typically (with quadrature, or sinusoidal encoders) an indication of reversed encoder direction –with respect to the output command- The encoder decode parameter can then be changed from 7 to 3 or vice versa. Phasing has to be performed again after this parameter has been changed. 21. Tuning the Position-Loop Tuning the position loop PID gains can be carried out in the traditional manner - see motor setup section in this manual - there are no special instructions for tuning MACRO motors. MACRO Connectivity 218 Geo Brick LV User Manual Configuration Example 2: Brick – Brick (Stepper Motors) MACRO Ring Master MACRO Ring Slave Driving Stepper Motors Setting up the Slave in Torque Mode for Steppers 1. Establish communication to Slave unit using USB, Ethernet, or Serial. 2. Consider starting from factory default settings. This can be done by issuing a $$$*** followed by a Save, and a $$$. 3. Consider downloading the suggested M-Variables in the Pewin32Pro2 software. 4. Set up motors per the motor setup section described in this manual. 5. Clock settings considerations The MACRO ring is synchronized at phase rate. Keep in mind that the phase clock frequency must be the same on both the master and the slave. The MACRO IC must be sourcing the clock (parameter I19). A Save followed by a $$$ are required whenever I19 is changed. It is advised to have both the MACRO and servo ICs set at the same phase frequency. I19 = I6800 I6801 I6802 6807 = I7000 = I7001 = I7002 ; ; ; ; Clock Macro Macro Macro source, MACRO IC 0 IC 0 MaxPhase/PWM Frequency Control IC 0 Phase Clock Frequency Control IC 0 Servo Clock Frequency Control 6. Make sure that the motors are fully operational and can be controlled in closed loop (e.g. jog commands). Position PID tuning is not critical at this point. Fine tuning of the slave motors should be eventually performed from the master side. 7. Kill all motors MACRO Connectivity 219 Geo Brick LV User Manual 8. MACRO ring settings I80, I81 and I82 enable the ring error check function. I85 specifies a station number which the slave unit is assigned to (e.g. multiple slave stations). I6840 specifies whether this is a master or a slave. I6841 specifies which MACRO nodes are enabled. Note, that it is not advised to enable nodes which will not be used. I85=1 ; Station number #1 (if multiple slaves) – User Input I6840=$4080 I6841=$0FF333 ; Macro IC0 Ring Configuration/Status, typical slave setting ; Macro IC0 Node Activate Ctrl (Servo nodes 0, 1, 4, 5, 8, 9, 12, 13) – User Input #define RingCheckPeriod 20 ; Suggested Ring Check Period [msec] #define FatalPackErr 15 ; Suggested Fatal Packet Error Percentage [%] I80=INT(RingCheckPeriod *8388608/I10/(I8+1)+1) ; Macro Ring Check Period [Servo Cycles] I81=INT(I80* FatalPackErr /100+1) ; Macro Maximum Ring Error Count I82=I80-I81*4 ; Macro Minimum Sync Packet Count 9. MACRO slave command address Ixx44 specifies the MACRO command address and mode for slave motors. I144=$178423 I244=$178427 I344=$17842B I444=$17842F I544=$178433 I644=$178437 I744=$17843B I844=$17843F ; ; ; ; ; ; ; ; Macro Macro Macro Macro Macro Macro Macro Macro IC0 IC0 IC0 IC0 IC0 IC0 IC0 IC0 Node Node Node Node Node Node Node Node 0 1 4 5 8 9 12 13 Command Command Command Command Command Command Command Command Address. Address. Address. Address. Address. Address. Address. Address. Torque Torque Torque Torque Torque Torque Torque Torque Mode Mode Mode Mode Mode Mode Mode Mode Setting Ixx44 to the MACRO command register hands control of the motors to the master. To allow motor commands from the slave again, Ixx44 needs to be set back to default of zero. Ixx44 must be set for at least one channel to allow MACRO auxiliary mode communication, thus enabling MX commands. Note 10. Issue a Save followed by a reset $$$ to maintain changes. 11. With Direct Micro-Stepping, the servo-loop command output is integrated in the Encoder Conversion Table to create a simulated sensor position, so in order to convey the command output from the Master the Encoder Conversion Table must be modified for MACRO support. Register 0 of each respective node carries the command output, it will replace the source address of the local servo command output (see stepper motor setup section in this manual): Note MACRO Connectivity Instead of replacing the current ECT entries with the MACRO support ECT entries, they can be added on. This way, a PLC program can be implemented to allow toggling motor control between local (Slave) and MACRO (Master). 220 Geo Brick LV User Manual Encoder Conversion Table Source Address Motor # Local MACRO Motor # Local MACRO 1 $0000BF $78420 5 $0002BF $78430 2 $00013F $78424 6 $00033F $78434 3 $0001BF $78428 7 $0003BF $78438 4 $00023F $7842C 8 $00043F $7843C We will keep the encoder conversion table entries for local control, and add entries for control over MACRO. These settings would look like: Results Position, Velocity, Commutation Pointers I8000=$6800BF ; Parallel read of Y/X:$BF I8001=$018018 ; 24 bits starting at X bit0 I8002=$EC0001 ; Integrate result from I8001 $3501 $3502 $3503 I103=$3503 I104=I103 I183=I103 I8003=$68013F ; Parallel read of Y/X:$13F I8004=$018018 ; 24 bits starting at X bit0 I8005=$EC0004 ; Integrate result from I8004 $3504 $3505 $3506 I203=$3506 I204=I203 I283=I203 I8006=$6801BF ; Parallel read of Y/X:$1BF I8007=$018018 ; 24 bits starting at X bit0 I8008=$EC0007 ; Integrate result from I8007 $3507 $3508 $3509 I303=$3509 I304=I303 I383=I303 I8009=$68023F ; Parallel read of Y/X:$23F I8010=$018018 ; 24 bits starting at X bit0 I8011=$EC000A ; Integrate result from I8010 $350A $350B $350C I403=$350C I404=I403 I483=I403 I8012=$6802BF ; Parallel read of Y/X:$2BF I8013=$018018 ; 24 bits starting at X bit0 I8014=$EC000D ; Integrate result from I8013 $350D $350E $350F I503=$350F I504=I503 I583=I503 I8015=$68033F ; Parallel read of Y/X:$33F I8016=$018018 ; 24 bits starting at X bit0 I8017=$EC0010 ; Integrate result from I8016 $3510 $3511 $3512 I603=$3512 I604=I603 I683=I603 I8018=$6803BF ; Parallel read of Y/X:$3BF I8019=$018018 ; 24 bits starting at X bit0 I8020=$EC0013 ; Integrate result from I8019 $3513 $3514 $3515 I703=$3515 I704=I703 I783=I703 I8021=$68043F ; Parallel read of Y/X:$43F I8022=$018018 ; 24 bits starting at X bit0 I8023=$EC0016 ; Integrate result from I8022 $3516 $3517 $3518 I803=$3518 I804=I803 I883=I803 For local control (to command motor from Slave) MACRO Connectivity 221 Geo Brick LV User Manual Results Position, Velocity, Commutation Pointers I8024=$6F8420 ; Parallel read of Y/X:$78420 I8025=$018000 ; 24 bits starting at Y bit0 I8026=$EC0019 ; Integrate result from I8025 $3519 $351A $351B I103=$351B I104=I103 I183=I103 I8027=$6F8424 ; Parallel read of Y/X:$78424 I8028=$018000 ; 24 bits starting at Y bit0 I8029=$EC001C ; Integrate result from I8028 $351C $351D $351E I203=$351E I204=I203 I283=I203 I8030=$6F8428 ; Parallel read of Y/X:$78428 I8031=$018000 ; 24 bits starting at Y bit0 I8032=$EC001F ; Integrate result from I8031 $351F $3520 $3521 I303=$3521 I304=I303 I383=I303 I8033=$6F842C ; Parallel read of Y/X:$7842C I8034=$018000 ; 24 bits starting at Y bit0 I8035=$EC0022 ; Integrate result from I8030 $3522 $3523 $3524 I403=$3524 I404=I403 I483=I403 I8036=$6F8430 ; Parallel read of Y/X:$78430 I8037=$018000 ; 24 bits starting at Y bit0 I8038=$EC0025 ; Integrate result from I8037 $3525 $3526 $3527 I503=$3527 I504=I503 I583=I503 I8039=$6F8434 ; Parallel read of Y/X:$78434 I8040=$018000 ; 24 bits starting at Y bit0 I8041=$EC0028 ; Integrate result from I8040 $3528 $3529 $352A I603=$352A I604=I603 I683=I603 I8042=$6F8438 ; Parallel read of Y/X:$78438 I8043=$018000 ; 24 bits starting at Y bit0 I8044=$EC002B ; Integrate result from I8043 $352B $352C $352D I703=$352D I704=I703 I783=I703 I8045=$6F843C ; Parallel read of Y/X:$7843C I8046=$018000 ; 24 bits starting at Y bit0 I8047=$EC002E ; Integrate result from I8046 $352E $352F $3530 I803=$3530 I804=I803 I883=I803 For MACRO control (to command motor from Master) For Micro-Stepping, the parallel read and integration ECTs combine to a 3-line entry. The processed data (result) lies in the 3rd line. Note 12. Issue a Save followed by a $$$ to maintain changes. MACRO Connectivity 222 Geo Brick LV User Manual The motors attached to the slave(s) have to be phased locally before allowing the Master to take over their control. This can be done using Macro auxiliary MX commands from the master and creating a handshaking flag to trigger local phasing followed by a kill on the slave side. Slave Handshaking PLC Example: Phase then kill Motor #1 P8000=0 ; Handshaking flag Open PLC 1 Clear IF (P8000 = 1) CMD"#1K" I5111= 250 *8388608/I10 While(I5111>0) EndW I144=0 ; Turn Auxiliary Control off I103=$3503 ; Set position pointer to local control ECT I104=$3503 ; Set velocity pointer to local control ECT I183=$3503 ; Set commutation pointer to local control ECT I5111= 250 *8388608/I10 While(I5111>0) EndW CMD"#1$" I5111= 500 *8388608/I10 While(I5111>0) EndW CMD"#1K" I5111= 250 *8388608/I10 While(I5111>0) EndW I144=$178423 ; Turn Auxiliary Control on I103=$351B ; Set position pointer to MACRO control ECT I104=I103 ; Set velocity pointer to MACRO control ECT I183=I103 ; Set commutation pointer to MACRO control ECT I5111= 250 *8388608/I10 While(I5111>0) EndW P8000 = 0 EndIf Close Issuing MX0, P8000=1 from the Master will allow the execution of this code on the slave. Note MACRO Connectivity 223 Geo Brick LV User Manual Setting up the Master in Torque Mode for Steppers 1. Establish communication to the master using USB, Ethernet, or Serial. 2. Consider starting from factory default settings. This can be done by issuing a $$$*** followed by a Save, and a reset $$$. 3. Consider downloading the suggested M-Variables in the Pewin32Pro2 software. 4. The master’s motors can now be set up as described in the motor setup section of this manual. Typically, these are motors #1 through #4 (or #8). 5. Clock settings considerations The MACRO ring is synchronized at phase rate. The phase clock frequency must be the same on the master and each of the slaves. It is advised that the MACRO and servo ICs be set to the same phase frequency. I6800 = I7000 I6801 = I7001 I6802 = I7002 ; Macro IC0 MaxPhase/PWM Frequency Control ; Macro IC0 Phase Clock Frequency Control ; Macro IC0 Servo Clock Frequency Control 6. MACRO ring settings I80, I81 and I82 enable the ring error check function. I6840 specifies whether this is a master or a slave. I6841 specifies which MACRO nodes are enabled. Note, that it is not advised to enable nodes which will not be used. I6840=$4030 I6841=$0FF333 I78=32 I70=$3333 I71=0 ; ; ; ; ; Macro IC0 Ring Configuration/Status, typical master IC setting Macro IC0 Node Activate Ctrl (Servo nodes 0, 1, 4, 5, 8, 9, 12, 13) – User Input Macro Type 1 Master/Slave Communications Timeout Macro IC 0 Node Auxiliary Register Enable (for 8 macro motors) Type 0 MX Mode #define RingCheckPeriod 20 ; Suggested Ring Check Period [msec] #define FatalPackErr 15 ; Suggested Fatal Packet Error Percentage [%] I80=INT(RingCheckPeriod *8388608/I10/(I8+1)+1) ; Macro Ring Check Period [Servo Cycles] I81=INT(I80* FatalPackErr /100+1) ; Macro Maximum Ring Error Count I82=I80-I81*4 ; Macro Minimum Sync Packet Count 7. Issue a Save, followed by a reset ($$$) to maintain changes. 8. Activating MACRO motors, Flag Control (Ixx00, Ixx24) The master Geo Brick LV can be fitted with 1 or 2 servo ICs to service local channels (4 or 8). The next available channel will be the first macro/slave motor. This allows taking advantage of some of the default MACRO settings set by the firmware upon detecting a MACRO IC. If I4900 = $1, then only Servo IC 0 is present, and the first macro motor is #5 I500,8,100=1 I524,8,100=$840001 ; Activate channels 5-12 ; Channels 5-12 flag control If I4900 = $3, then Servo ICs 0 and 1 are present, and the first macro motor is #9 I900,8,100=1 I924,8,100=$840001 MACRO Connectivity ; Activate channels 9-16 ; Channels 9-16 flag control 224 Geo Brick LV User Manual 9. Position And Velocity Pointers (Ixx03, Ixx04) If all local motors have digital quadrature encoders (or 1-line ECT entries), and no other entries are used in the Encoder Conversion Table then the position (Ixx03) and Velocity (Ixx04) pointers of the MACRO motors are valid by default (set by firmware) and need not be changed: MACRO motor Motor # Ixx03, Ixx04 MACRO motor Motor # Ixx03, Ixx04 1st 5 or 9 $350A 5th 9 or 13 $3512 $350C th 10 or 14 $3514 th 11 or 15 $3516 th 12 or 16 $3518 2 nd 3 rd 4 th 6 or 10 7 or 11 8 or 12 $350E $3510 6 7 8 However, if the Encoder Conversion Table has been modified then the MACRO motors/nodes entries need to be configured properly. This can be done using the Encoder Conversion Table utility in the PewinPro2 under Configure>Encoder Conversion Table: 4. 5. 6. 7. 8. 9. Click on End of Table to access the next available entry Conversion Type: Parallel position from Y word with no filtering No Shifting Width in Bits: 24 Source Address: Servo node Address (See table below) Record the processed data address. This is where the position and velocity pointers will be set to for a specific node/motor number. E.g. I903,2=$351A 10. Repeat steps for additional motors/servo nodes MACRO Connectivity 225 Geo Brick LV User Manual Servo Node Addresses MACRO motor Motor # Address 1st 5 or 9 $78420 2 nd 3 rd th 4 6 or 10 7 or 11 8 or 12 $78424 $78428 $7842C Register MACRO motor Motor # Servo Node 0 5th Servo Node 1 th th th 6 Servo Node 4 7 Servo Node 5 8 Address Register 9 or 13 $78430 Servo Node 8 10 or 14 $78434 Servo Node 9 11 or 15 $78438 Servo Node 12 12 or 16 $7843C Servo Node 13 Ixx25 Register 10. The flag address Ixx25 is initiated by default in the firmware: MACRO motor Motor # Ixx25 1st 5 or 9 $3440 2 nd rd 3 th 4 6 or 10 7 or 11 8 or 12 $3441 $3444 $3445 Register MACRO motor Motor # Servo Node 0 5th 9 or 13 $3448 Servo Node 8 Servo Node 1 th 10 or 14 $3449 Servo Node 9 th 11 or 15 $344C Servo Node 12 th 12 or 16 $344D Servo Node 13 6 Servo Node 4 7 Servo Node 5 8 11. The motor command output address Ixx02 is initiated by default in the firmware: MACRO motor Motor # Ixx02 Register MACRO motor Motor # Ixx02 Register 1st 5 or 9 $078420 Servo Node 0 5th 9 or 13 $078430 Servo Node 8 Servo Node 1 th 10 or 14 $078434 Servo Node 9 th 2 nd 6 or 10 $078424 6 rd 7 or 11 $078428 Servo Node 4 7 11 or 15 $078438 Servo Node 12 4th 8 or 12 $07842C Servo Node 5 8th 12 or 16 $07843C Servo Node 13 3 12. Tuning the PID-Loop With stepper motors, these are computed empirically, and can be set to the following: Ixx30=1024 Ixx31=0 Ixx32=85 Ixx33=1024 Ixx34=1 13. Issue a SAVE followed by a $$$ to maintain changes The motor setup is now finished and both Master and Slave units are in post-reset mode (power-up), therefore local and Macro motors need to be phased. Motors attached directly to the master are initialized and phased in the traditional manner. Motors attached to the slave are initialized by executing the handshaking PLC (e.g. issuing MX0, P8000=1). MACRO Connectivity 226 Geo Brick LV User Manual Configuration Example 3: Brick – Geo MACRO Drive This configuration example discusses the necessary steps for setting up a MACRO ring with an 8-axis Geo Brick LV as a master and up to 4 x dual axes Geo MACRO drives as slaves. For simplicity, we will cover guidelines for setting up one Geo MACRO drive in detail. The others can be configured similarly. Geo MACRO Drive (Slave #4) For non-MACRO experienced users, it may be practical to configure one Geo MACRO drive at a time (as shown below). That is by connecting it to the Geo Brick LV via two fiber optic cables while leaving the other drives outside of the ring. Geo Brick LV (Master) Geo MACRO Drive (Slave #3) Geo Brick LV (Master) in out Geo MACRO Drive (Slave #2) Geo MACRO Drive (Slave) Geo MACRO Drive (Slave #1) The following table summarizes the basic clock (Geo Brick LV recommended) and MACRO settings for the ring in the diagram above. MS commands are allowed once the clocks are synchronized and nodes are enabled properly on the master and each of the slaves. The slaves’ settings can be implemented via MACRO ASCII communication. Clock Settings I6800=1473 I6801=3 I6802=1 I7100=1473 I7101=3 I7102=1 I7000=1473 I7001=3 I7002=1 I10=1677653 MACRO Settings Master I6840=$4030 I6841=$0FF333 I78=32 I70=$3333 I71=$3333 I80=101 I81=3 I82=30 MACRO Connectivity Slave #1 (Servo nodes 0,1) Slave #2 (Servo nodes 4,5) Slave #3 (Servo nodes 8,9) Slave #4 (Servo nodes 12,13) MS0,I992=1473 MS0,I997=3 MS4,I992=1473 MS4,I997=3 MS8,I992=1473 MS8,I997=3 MS12,I992=1473 MS12,I997=3 MS0,I995=$4080 MS0,I996=$F4003 MS4,I995=$4080 MS4,I996=$F4030 MS8,I995=$4080 MS8,I996=$F4300 MS12,I995=$4080 MS12,I996=$F7000 MS0,I11=1 MS4,I11=2 MS8,I11=3 MS12,I11=4 MS0,I8=202 MS0,I9=18 MS0,I10=120 MS4,I8=202 MS4,I9=18 MS4,I10=120 MS8,I8=202 MS8,I9=18 MS8,I10=120 MS12,I8=202 MS12,I9=18 MS12,I10=120 227 Geo Brick LV User Manual The following steps are guidelines for setting up one Geo Macro Drive slave: 1. Establish communication to the Geo Brick LV using USB, Ethernet, or Serial. 2. Consider starting from factory default settings. This can be done by issuing a $$$*** followed by a Save, and a reset ($$$). 3. Consider downloading the suggested M-Variables in the Pewin32Pro2 software. 4. The master’s motors can now be set up as described in the motor setup section of this manual. These are motors #1 through #8 (or #4 if it is a 4-axis Geo Brick LV). 5. Clock settings considerations The MACRO ring is synchronized at phase rate. The phase clock frequency must be the same on the master and each of the slaves (Geo MACRO Drives). It is also advised that the MACRO and servo ICs be set to the same phase frequency. I6800 = I7000 I6801 = I7001 I6802 = I7002 ; Macro IC0 MaxPhase/PWM Frequency Control ; Macro IC0 Phase Clock Frequency Control ; Macro IC0 Servo Clock Frequency Control Note It is not necessary for the master to have the MACRO IC sourcing the clock. But if it is desired, I19 can be simply set to 6807 followed by a Save and a reset $$$. 6. MACRO ring settings I80, I81 and I82 enable the ring error check function. I6840 specifies whether this is a master or a slave. I6841 specifies which MACRO nodes are enabled. Note, that it is not advised to enable nodes which will not be used. I6840=$4030 I6841=$0FC003 I78=32 I70=$3 I71=$3 ; ; ; ; ; Macro IC0 Ring Configuration/Status, typical master IC setting Macro IC0 Node Activate Ctrl (Servo nodes 0, 1) – User Input Macro Type 1 Master/Slave Communications Timeout Macro IC 0 Node Auxiliary Register Enable (for 2 macro motors) Type 1 MX Mode #define RingCheckPeriod 20 ; Suggested Ring Check Period [msec] #define FatalPackErr 15 ; Suggested Fatal Packet Error Percentage [%] I80=INT(RingCheckPeriod *8388608/I10/(I8+1)+1) ; Macro Ring Check Period [Servo Cycles] I81=INT(I80* FatalPackErr /100+1) ; Macro Maximum Ring Error Count I82=I80-I81*4 ; Macro Minimum Sync Packet Count 7. Issue a Save, followed by a reset $$$ to maintain changes. MACRO Connectivity 228 Geo Brick LV User Manual 8. If the Geo MACRO Drive has been configured prior to this setup, then it may have been assigned a station number and/or may have some enabled nodes. You would need to know what the station number is in order to perform ASCII communication, or which nodes are enabled in order to issue MS commands. The following commands can then be issued to reset the Geo MACRO Drive(s) back to its factory default settings: MS$$$***15 will broadcast a global reset to stations associated with all enabled nodes MSSAV15 will broadcast a Save to stations associated with all enabled nodes MS$$$15 will broadcast a reset ($$$) to stations associated with all enabled nodes 9. Assuming that the Geo MACRO Drive(s) is or has been reset to factory default settings, we will now try to establish MACRO ASCII communication by issuing: MACSTA255 This command will establish MACRO ASCII (direct) communication with the first unassigned Geo MACRO Drive (if more than one is in the ring) starting from the OUT/Transmit fiber or RJ45 out of the Geo Brick LV. 10. When in ASCII mode, download from the editor or issue the following commands in the terminal window: I995 = $4080 ; MACRO IC ring configuration, typical slave setting I996 = $0F4003 ; Node activation (servo nodes 0, 1) –User Input 11. Issue a Control^T in the terminal window to exit ASCII mode communication Master Slave (MS) commands should now be available for nodes 0 and 1 (per this example). 12. Clock Settings The phase frequency should be set the same as the master’s. Set the following: MS0, I992 = Value of I7000 (or I6800) ; Max Phase Clock MS0, I997 = Value of I7001 (or I6801) ; Phase Clock Divider 13. Ring Check Error Enabling the ring check error function on the Geo MACRO drive requires computing and setting the following parameters: MS0,I8 -> I80*(I6802+1) MS0,I9 -> I81*(I6802+1)*(I8+1) MS0,I10 -> I82*(I6802+1)*(I8+1) Where I8, I80, I81, I82, and I6802 are masters’ parameters. 14. Station Number The station number is used for ASCII communication. MS0, I11 = 1 ; Assign Station Number #1 –User Input 15. Issue MSSAV0 followed by MS$$$0 to maintain changes on the Geo MACRO Drive. MACRO Connectivity 229 Geo Brick LV User Manual 16. Activating MACRO Motors Variable I4900 reports how many servo ICs is the Geo Brick LV populated with. Knowing that each Servo IC services 4 axes, querying I4900 will reveal how many local channels are occupied and thus the number of the 1st available motor on the Macro Ring: If I4900= Servo ICs present $1 IC0 only (4-axis) $3 IC0, and IC1(8-axis) Local Motors 1-4 First Motor# On The Ring 5 Activation 2-axis Slave I500,2,100=1 1–8 9 I900,2,100=1 17. Position, Velocity pointers If all local motors have digital quadrature encoders (1-line ECT entries), and no other entries are used in the Encoder Conversion Table then the position (Ixx03) and Velocity (Ixx04) pointers of the MACRO motors are valid by default (set by firmware) and need not be changed: MACRO motor Motor # Ixx03, Ixx04 MACRO motor Motor # 1st 5 or 9 $350A 5th 9 or 13 $3512 $350C th 10 or 14 $3514 th 11 or 15 $3516 th 12 or 16 $3518 2 nd 3 rd 4 th 6 or 10 7 or 11 8 or 12 $350E $3510 6 7 8 Ixx03, Ixx04 However, if the Encoder Conversion Table has been modified then the MACRO motors/nodes entries need to be configured properly. This can be done using the Encoder Conversion Table utility in the PewinPro2 under Configure>Encoder Conversion Table: a. b. c. d. e. f. Click on End of Table to access the next available entry Conversion Type: Parallel position from Y word with no filtering No Shifting Width in Bits: 24 Source Address: Servo node Address (See table below) Record the processed data address. This is where the position and velocity pointers will be set to for a specific node/motor number. E.g. I903,2=$351A g. Repeat steps for additional motors/servo nodes MACRO Connectivity 230 Geo Brick LV User Manual Servo Node Addresses MACRO Motor # Address motor 1st 5 or 9 $78420 Register MACRO Motor # motor Address Register Servo Node 0 5th 9 or 13 $78430 Servo Node 8 th nd 6 or 10 $78424 Servo Node 1 6 10 or 14 $78434 Servo Node 9 3rd 7 or 11 $78428 Servo Node 4 7th 11 or 15 $78438 Servo Node 12 Servo Node 5 th 12 or 16 $7843C Servo Node 13 2 4 th 8 or 12 Note MACRO Connectivity $7842C 8 At this point of the setup, you should be able to move the motor/encoder shaft by hand and see encoder counts in the position window 231 Geo Brick LV User Manual 18. Typical MACRO motor settings The motor command output address Ixx02 is initiated by default in the firmware MACRO motor Motor # Ixx02 Register MACRO motor Motor # Ixx02 Register 1st 5 or 9 $078420 Servo Node 0 5th 9 or 13 $078430 Servo Node 8 2nd 6 or 10 $078424 Servo Node 1 6th 10 or 14 $078434 Servo Node 9 3rd 7 or 11 $078428 Servo Node 4 7th 11 or 15 $078438 Servo Node 12 Servo Node 5 th 12 or 16 $07843C Servo Node 13 4 th 8 or 12 $07842C 8 The flag address Ixx25 is initiated by default in the firmware. MACRO motor Motor # Ixx25 Register MACRO motor Motor # Ixx25 Register 1st 5 or 9 $3440 Servo Node 0 5th 9 or 13 $3448 Servo Node 8 Servo Node 1 th 10 or 14 $3449 Servo Node 9 th 2 nd 6 or 10 $3441 6 3 rd 7 or 11 $3444 Servo Node 4 7 11 or 15 $344C Servo Node 12 4th 8 or 12 $3445 Servo Node 5 8th 12 or 16 $344D Servo Node 13 The Flag Control Ixx24 is typically set to $40001 ($60001 to disable hardware over-travel limits). The commutation position addresses Ixx83 is initiated by default in the firmware. MACRO motor Motor # Ixx83 Register MACRO motor Motor # Ixx83 Register 1st 5 or 9 $078420 Servo Node 0 5th 9 or 13 $078430 Servo Node 8 th nd 6 or 10 $078424 Servo Node 1 6 10 or 14 $078434 Servo Node 9 3rd 7 or 11 $078428 Servo Node 4 7th 11 or 15 $078438 Servo Node 12 4th 8 or 12 $07842C Servo Node 5 8th 12 or 16 $07843C Servo Node 13 2 The commutation enable Ixx01 should be set to 3, indicating that commutation is performed from Y registers (specified in Ixx83). The PWM Scale Factor Ixx66 is set up as follows: If Motor Voltage > Bus Voltage: Ixx66 = 1.1 * 16384 If Motor Voltage < Bus Voltage: Ixx66 = 1.1 * 16384 * MtrVolt / BusVolt The commutation angle Ixx72 should be set to 1365. The current feedback mask Ixx84 should be set to $FFF000. MACRO Connectivity 232 Geo Brick LV User Manual The current loop feedback address Ixx82 should be set per the following table: MACRO motor Motor # Ixx82 Register MACRO motor Motor # Ixx82 Register 1st 5 or 9 $078422 Servo Node 0 5th 9 or 13 $078432 Servo Node 8 th nd 6 or 10 $078426 Servo Node 1 6 10 or 14 $078436 Servo Node 9 3rd 7 or 11 $07842A Servo Node 4 7th 11 or 15 $07843A Servo Node 12 Servo Node 5 th 12 or 16 $07843E Servo Node 13 2 4 th 8 or 12 $07842E Commutation Cycle Size Ixx70 = {Number of pair poles} Ixx71 = {Number of counts per revolution * 32} I2T Settings (example for motor #9): 8 I15=0 #define MaxPhaseFreq P8000 #define PWMClk P8001 #define PhaseClk P8002 #define ServoClk P8003 MaxPhaseFreq=117964.8/(2*I6800+3) PWMClk=117964.8/(4*I6800+6) PhaseClk=MaxPhaseFreq/(I6801+1) ServoClk=PhaseClk/(I6802+1) ; ; ; ; ; Trigonometric calculation in degrees Max Phase Clock [KHz] PWM Clock [KHz] Phase Clock [KHz] Servo Clock [KHz] #define #define #define #define ; ; ; ; Continuous Current Limit [Amps] –User Input Instantaneous Current Limit [Amps] –User Input See Geo MACRO electrical specifications –User Input Time allowed at peak Current [sec] Mtr9ContCurrent Mtr9PeakCurrent MaxADC Mtr9I2TOnTime 3 9 16.3 2 I957=INT(32767*(Mtr9ContCurrent*1.414/MaxADC)*cos(30)) I969=INT(32767*(Mtr9PeakCurrent*1.414/MaxADC)*cos(30)) I958=INT((I969*I969-I957*I957)*ServoClk*1000*Mtr9I2TOnTime/(32767*32767)) 19. Current-Loop Tuning (Ixx61, Ixx62, Ixx76) Current loop tuning is performed in the same manner as it would be for any digitally commuted amplifier. A satisfactory current loop response (PmacTuningPro2 screen shot) would look like: MACRO Connectivity 233 Geo Brick LV User Manual 20. Motor Phasing, Open-Loop Test Motor phasing is performed in the same manner as it would be for any digitally commutated motor. The following is a satisfactory open loop test: An erratic or inverted saw tooth response is typically (with quadrature, or sinusoidal encoders) an indication of reversed encoder direction –with respect to the output command- The encoder decode parameter MS{node},I910 can then be changed from 7 to 3 or vice versa. Phasing has to be performed again after this parameter has been changed. 21. Tuning the Position-Loop Tuning the position loop PID gains can be carried on in the traditional manner - see motor setup section in this manual- there are no special instructions for tuning MACRO motors. MACRO Connectivity 234 Geo Brick LV User Manual Brick – Brick MACRO I/O Data Transfer This section describes the handling of inputs and outputs data transfer over the MACRO ring. That is transferring I/O data from the Brick slave to the Brick master. A Geo Brick LV, used as a MACRO slave, can be populated with up to: 32 digital inputs / 16 digital outputs (connectors J6, J7) 4 x 12-bit filtered PWM DAC outputs (connectors X9, X10, X11, X 12) 4 x 16-bit analog inputs (connectors X9, X10, X11, X 12) 8 x 12-bit analog inputs (connector J9) There is a variety of ways to transfer I/O data over MACRO: Using I/O nodes. This method consists of assembling the data in a PLC code at the slave side, and conveying it over to MACRO I/O nodes. These I/O nodes are then extracted in a PLC code on the master side and placed into open memory registers. This technique is suitable for digital inputs and outputs. Using servo nodes This method is primarily used for the X9-X12 analog inputs and outputs which, in some applications, may require being processed at servo or phase rate (e.g. servo feedback, cascaded loop or output to a spindle drive). This is the fastest transfer method possible. Note that in this mode, axes 5-8 on the slave cannot be configured to drive motors. The corresponding servo nodes will be occupied. Using MACRO Auxiliary MX reads and writes in a background PLC This method is ideal for transferring a large amount of data without much coding and complexity. It is suitable for monitoring and toggling inputs and outputs. But it is not deterministic (relies on background PLCs, and phase cycle delays with MX commands) or as fast as other methods. MACRO Connectivity 235 Geo Brick LV User Manual Transferring the Digital (Discrete) Input and Outputs A Geo Brick LV can be populated with up to 32 digital inputs and 16 digital outputs (connectors J6 and J7) for a total of 48 I/O points (bits) mapped as follows: Inputs st 1 byte 2nd byte 3rd Byte 4th Byte Address Connector Outputs st Y:$78800,0,8 Y:$78801,0,8 Y:$78803,0,8 Y:$78804,0,8 1 byte 2nd byte J6 Address Connector Y:$78802,0,8 Y:$78805,0,8 J6 J7 J7 For the digital inputs and outputs, we will use the I/O node data transfer method. MACRO I/O node 2 will be used to carry all 48 points of data: Note MACRO Connectivity I/O Node Address Register-Description 2 X:$78420 X:$78421 X:$78422 X:$78423 24-bit register 1 16-bit register (Upper) 2nd16-bit register (Upper) 3rd 16-bit register (Upper) st Some Geo Brick LVs may not be fully populated with all the inputs/outputs bytes shown above. The non-existent bytes can be simply deleted from the example codes below. 236 Geo Brick LV User Manual The proposed transfer mechanism establishes the reading of inputs and writing to outputs through bitwise assignments (single-bit definitions) from the master side. Outputs: At the master side, the user would write the desired outputs’ state (using the bitwise definitions) to pre-defined open memory registers which are copied, using a PLC code, into the 24-bit register of MACRO I/O node 2. At the Slave side, this MACRO I/O node register is copied, using a PLC code, into the local outputs’ registers which will reflect the user’s outputs’ desired state. Inputs: At the slave side, the machine’s inputs’ state is copied into first 2 x 16-bit registers of MACRO I/O node 2. At the master side, these MACRO I/O node registers are copied, using a PLC code, into predefined open memory registers (bitwise definitions) where the user can monitor the machine’s inputs’ state. The following diagram summarizes the abovementioned transfer technique: Open Memory Open Memory 2nd Byte Copy Outputs to IO node 1st Byte 2nd Byte 3rd Byte Write Inputs to Master 4th Byte Master PLC Operations MACRO Connectivity 24-bit register 1st 16-bit register (upper 16 bits) 2nd 16-bit register (upper 16 bits) Brick Slave Write outputs to Slave 1st Byte 2nd Byte 1st Byte Copy Inputs to IO node 2nd Byte 3rd Byte Inputs INPUTS User Read 1st Byte MACRO I/O Node 2 Outputs OUTPUTS User Write Brick Master 4th Byte Slave PLC Operations 237 Geo Brick LV User Manual Slave Digital I/Os Transfer Example I6841=I6841|$000004 // Digital Outputs #define OutByte1 M7000 #define OutByte2 M7001 OutByte1->Y:$078802,0,8,U OutByte2->Y:$078805,0,8,U // Digital Inputs #define InByte1 M7003 #define InByte2 M7004 #define InByte3 M7005 #define InByte4 M7006 InByte1->Y:$078800,0,8,U InByte2->Y:$078801,0,8,U InByte3->Y:$078803,0,8,U InByte4->Y:$078804,0,8,U ; Make sure that I/O node 2 is active ; 1st Byte of Outputs J6 ; 2nd Byte of Outputs J7 ; ; ; ; 1st 2nd 3rd 4th Byte Byte Byte Byte of of of of Inputs Inputs Inputs Inputs // Digital Inputs/Outputs Latch Registers M7009..7013->* M7009..7013=0 #define LatchOut M7009 #define LatchIn1 M7010 #define LatchIn2 M7011 #define LatchIn3 M7012 #define LatchIn4 M7013 // MACRO I/O Node Registers #define N2Twenty4 M7016 #define N2First16 M7017 #define N2Second16 M7018 N2Twenty4->X:$78420,0,24,U N2First16->X:$78421,8,16,U N2Second16->X:$78422,8,16,U ; 24-bit register, node 2 ; 1st 16-bit register, node 2 ; 2nd 16-bit register, node 2 // Digital I/O Data Transfer PLC Open plc 1 clear If (LatchOut!=N2Twenty4) LatchOut=N2Twenty4 OutByte1= LatchOut&$0000FF OutByte2=(LatchOut&$00FF00)/256 EndIf ; ; ; ; Change in state? Latch data Update Outputs 1-8, Update Outputs 9-15, J6 J7 If (LatchIn1!=InByte1 Or LatchIn2!=InByte2 Or LatchIn3!=InByte3 Or LatchIn4!=InByte4) LatchIn1=InByte1 ; Latch data LatchIn2=InByte2 ; Latch data LatchIn3=InByte3 ; Latch data LatchIn4=InByte4 ; Latch data N2First16= LatchIn1+LatchIn2*256 ; Assemble Input bytes 1-2 in 1st 16-bit register node 2 N2Second16=LatchIn3+LatchIn4*256 ; Assemble Input bytes 3-4 in 2nd 16-bit register node 2 EndIf Close MACRO Connectivity 238 Geo Brick LV User Manual Master Digital I/Os Transfer Example I6841=I6841|$000004 ; Make sure that I/O node 2 is active // Open Memory Registers #define OpenReg16Y M7000 #define OpenReg16X M7001 #define OpenReg15Y M7002 OpenReg16Y->Y:$10FF,0,24,U OpenReg16X->X:$10FF,8,16,U OpenReg15Y->Y:$10FE,8,16,U M7000..7002=0 ; ; ; ; ; ; ; Open memory register 16, Y-word Open memory register 16, X-word Open memory register 15, Y-word Holding 24 digital Outputs Holding 1st 16-bit digital Inputs Holding 2nd 16-bit digital Inputs Initialization // Latching Words M7004..7006->* M7004..7006=0 #define LatchOut #define LatchIn1 #define LatchIn2 ; ; ; ; ; Self referenced Initialization Digital Outputs Latch Digital Inputs Latch 1 Digital Inputs Latch 2 M7004 M7005 M7006 // MACRO I/O Node Registers #define N2Twenty4 M7008 #define N2First16 M7009 #define N2Second16 M7010 N2Twenty4->X:$78420,0,24,U N2First16->X:$78421,8,16,U N2Second16->X:$78422,8,16,U ; Node 2, 24-bit register ; Node 2, 1st 16-bit register ; Node 2, 2nd 16-bit register // Digital I/O Data Transfer PLC Open plc 1 clear If (LatchOut!=OpenReg16Y) ; Output Open Register Changed? LatchOut=OpenReg16Y ; Latch data N2Twenty4=LatchOut ; Update Output Word EndIf If (LatchIn1!=N2First16) LatchIn1=N2First16 OpenReg16X=LatchIn1 EndIf ; Input Node word changed? ; Latch data ; Update Input Open Register word If (LatchIn2!=N2Second16) LatchIn2=N2Second16 OpenReg15Y=LatchIn2 EndIf Close ; Input Node word changed? ; Latch data ; Update Input Open Register word MACRO Connectivity 239 Geo Brick LV User Manual Bitwise Assignments (downloaded onto the master) // J6 Outputs #define Output1 #define Output2 #define Output3 #define Output4 #define Output5 #define Output6 #define Output7 #define Output8 M7101 M7102 M7103 M7104 M7105 M7106 M7107 M7108 Output1->Y:$10FF,0,1 Output2->Y:$10FF,1,1 Output3->Y:$10FF,2,1 Output4->Y:$10FF,3,1 Output5->Y:$10FF,4,1 Output6->Y:$10FF,5,1 Output7->Y:$10FF,6,1 Output8->Y:$10FF,7,1 ; ; ; ; ; ; ; ; Output Output Output Output Output Output Output Output // J6 Inputs #define Input1 #define Input2 #define Input3 #define Input4 #define Input5 #define Input6 #define Input7 #define Input8 #define Input9 #define Input10 #define Input11 #define Input12 #define Input13 #define Input14 #define Input15 #define Input16 M7131 M7132 M7133 M7134 M7135 M7136 M7137 M7138 M7139 M7140 M7141 M7142 M7143 M7144 M7145 M7146 Input1->X:$10FF,8,1 Input2->X:$10FF,9,1 Input3->X:$10FF,10,1 Input4->X:$10FF,11,1 Input5->X:$10FF,12,1 Input6->X:$10FF,13,1 Input7->X:$10FF,14,1 Input8->X:$10FF,15,1 Input9->X:$10FF,16,1 Input10->X:$10FF,17,1 Input11->X:$10FF,18,1 Input12->X:$10FF,19,1 Input13->X:$10FF,20,1 Input14->X:$10FF,21,1 Input15->X:$10FF,22,1 Input16->X:$10FF,23,1 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Output9 ->Y:$10FF,8,1 Output10->Y:$10FF,9,1 Output11->Y:$10FF,10,1 Output12->Y:$10FF,11,1 Output13->Y:$10FF,12,1 Output14->Y:$10FF,13,1 Output15->Y:$10FF,14,1 Output16->Y:$10FF,15,1 ; ; ; ; ; ; ; ; Output Output Output Output Output Output Output Output Input17->Y:$10FE,8,1 Input18->Y:$10FE,9,1 Input19->Y:$10FE,10,1 Input20->Y:$10FE,11,1 Input21->Y:$10FE,12,1 Input22->Y:$10FE,13,1 Input23->Y:$10FE,14,1 Input24->Y:$10FE,15,1 Input25->Y:$10FE,16,1 Input26->Y:$10FE,17,1 Input27->Y:$10FE,18,1 Input28->Y:$10FE,19,1 Input29->Y:$10FE,20,1 Input30->Y:$10FE,21,1 Input31->Y:$10FE,22,1 Input32->Y:$10FE,23,1 ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input // J7 Outputs #define Output9 #define Output10 #define Output11 #define Output12 #define Output13 #define Output14 #define Output15 #define Output16 // J7 Inputs #define Input17 #define Input18 #define Input19 #define Input20 #define Input21 #define Input22 #define Input23 #define Input24 #define Input25 #define Input26 #define Input27 #define Input28 #define Input29 #define Input30 #define Input31 #define Input32 M7109 M7110 M7111 M7112 M7113 M7114 M7115 M7116 M7147 M7148 M7149 M7150 M7151 M7152 M7153 M7154 M7155 M7156 M7157 M7158 M7159 M7160 M7161 M7162 MACRO Connectivity 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 240 Geo Brick LV User Manual Transferring The X9-X12 Analog Inputs/Outputs A Geo Brick LV MACRO slave can be populated with up to: 4 x 16-bit analog inputs (connectors X9 through X12) 4 x 12-bit filtered PWM ±10V analog outputs (connectors X9 through X12) These inputs and outputs are typically mapped using suggested or pre-defined M-Variables at the following addresses: Analog Inputs, connectors X9-X12 M505->Y:$078105,8,16,S M605->Y:$07810D,8,16,S M705->Y:$078115,8,16,S M805->Y:$07811D,8,16,S Note ; ; ; ; ADC ADC ADC ADC Input Input Input Input Analog Outputs, connectors X9-X12 1 2 3 4 M502->Y:$078102,8,16,S M602->Y:$07810A,8,16,S M702->Y:$078112,8,16,S M802->Y:$07811A,8,16,S ; ; ; ; Analog Analog Analog Analog DAC DAC DAC DAC 1 2 3 4 Some Geo Brick LVs may not be fully populated with all the analog inputs and outputs. The non-existent ones can be simply deleted from the example codes. We will use the Servo Node method to transfer the X9-X12 analog data. Servo nodes 8, 9, 12, and 13 will carry the analog output data in the 24-bit register, and the analog input data in the first 16-bit register. The auxiliary mode Ixx44 is set to PWM mode to allow automatic transferring of ADCs. This method cannot be used if servo nodes 8, 9, 12, and 13 are already in use, or if motors 5-8 on the slave are configured. Note Servo Node 8 9 12 13 24-bit Y:$78430 Y:$78434 Y:$78438 Y:$7843C DAC Output Data 16-bit Y:$78431 Y:$78435 Y:$78439 Y:$7843D ADC Input Data 16-bit Y:$78432 Y:$78436 Y:$7843A Y:$7843E 16-bit Y:$78433 Y:$78437 Y:$7843B Y:$7843F MACRO Connectivity 241 Geo Brick LV User Manual Slave Settings I6841=I6841|$3300 ; Enable servo nodes 8,9,12,13 I544=$078433 I644=$078437 I744=$07843B I844=$07843F ; ; ; ; MacroIC0 MacroIC0 MacroIC0 MacroIC0 Node 8 Node 9 Node12 Node13 Command Command Command Command Address. Address. Address. Address. PWM PWM PWM PWM Mode Mode Mode Mode For For For For ADC ADC ADC ADC I500,4,100=0 ; De-activate channels to allow direct DAC writes Transfer Transfer Transfer Transfer Master Settings I6841=I6841|$3300 ; Enable servo nodes 8,9,12,13 M1302->Y:$78430,8,16,S M1402->Y:$78434,8,16,S M1502->Y:$78438,8,16,S M1602->Y:$7843C,8,16,S ; ; ; ; Analog Analog Analog Analog DAC DAC DAC DAC 1 2 3 4 M1305->Y:$78431,8,16,S M1405->Y:$78435,8,16,S M1505->Y:$78439,8,16,S M1605->Y:$7843D,8,16,S ; ; ; ; Analog Analog Analog Analog ADC ADC ADC ADC 1 1 1 1 At the master side: The analog DAC (filtered PWM) outputs can now be written to using Mxx02 variables. The analog ADC inputs can now be read using Mxx05 variables. Note MACRO Connectivity This setup example assumes that the DAC (filtered PWM) outputs at the slave side have been set up properly. See X9-X12 connector setup section. 242 Geo Brick LV User Manual Transferring The J9 Analog Inputs A Geo Brick LV MACRO slave with option 12 offers 8 x 12-bit analog inputs on connector J9. These inputs and outputs are typically mapped using suggested or pre-defined M-Variables at the following addresses: Analog Inputs, connector J9 M6991->Y:$003400,12,12,S M6992->Y:$003402,12,12,S M6993->Y:$003404,12,12,S M6994->Y:$003406,12,12,S M6995->Y:$003408,12,12,S M6996->Y:$00340A,12,12,S M6997->Y:$00340C,12,12,S M6998->Y:$00340E,12,12,S ; ; ; ; ; ; ; ; ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 Bipolar Bipolar Bipolar Bipolar Bipolar Bipolar Bipolar Bipolar M6991->Y:$003400,12,12,U M6992->Y:$003402,12,12,U M6993->Y:$003404,12,12,U M6994->Y:$003406,12,12,U M6995->Y:$003408,12,12,U M6996->Y:$00340A,12,12,U M6997->Y:$00340C,12,12,U M6998->Y:$00340E,12,12,U ; ; ; ; ; ; ; ; ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7 ADC8 Unipolar Unipolar Unipolar Unipolar Unipolar Unipolar Unipolar Unipolar We will use the MACRO auxiliary MX read commands to transfer the J9 analog inputs. This is done in a background PLC which copies M6991-M6998 from the slave into eight consecutive self-referenced Mxx05 variables at the master. Master Settings M1705,8,100->* Open PLC 1 Clear // Analog Inputs (J9) MXR0,M6991,M1705 ; J9 Analog Input 1 MXR0,M6992,M1805 ; J9 Analog Input 2 MXR0,M6993,M1905 ; J9 Analog Input 3 MXR0,M6994,M2005 ; J9 Analog Input 4 MXR0,M6995,M2105 ; J9 Analog Input 5 MXR0,M6996,M2205 ; J9 Analog Input 6 MXR0,M6997,M2305 ; J9 Analog Input 7 MXR0,M6998,M2405 ; J9 Analog Input 8 I5111=1*8388608/I10 while(I5111>0) Endw close ; 1 msec delay At the slave side, the J9 analog ADC inputs can now be read using these Mxx05 variables. This setup example assumes that the J9 ADC inputs have been set up properly at the slave side. See J9 connector setup section. Note MACRO Connectivity 243 Geo Brick LV User Manual MACRO Limits, Flags and Homing Limits and Flags MACRO Motors’ Limits and Flags are automatically copied by the Firmware. They can be accessed from the Ring Controller using the MACRO Suggested M-Variables. Note In a Brick – Brick MACRO configuration, the over-travel limits should be disabled on the slave side (Ixx24=Ixx24|$20001). They are only enabled on the master side. Homing from Master If it is desired to home from the master (centralized control) then the position capture should be set to software capture with Ixx97 = 1. In this mode, the slave’s Servo IC m Channel n capture control (I7mn2) and flag select control (I7mn3) have to be configured. This can be achieved from the master side using MX commands: In a two 8-axis Brick Macro ring, configure Motor #9 to home to User Flag High. Motor #9 corresponds to Motor#1 on the Slave Station or Servo IC 0 channel 1: MX0, I7012= 2 MX0, I7013= 3 ; Servo IC 0 Channel 1Capture Control (flag high) ; Servo IC 0 Channel 1Capture Flag Select Control (user flag) In a two 8-axis Brick Macro ring, configure Motor #14 to home to User Flag High. Motor #14 corresponds to Motor#6 on the Slave Station or Servo IC 1 channel 2: MX0, I7122= 2 MX0, I7123= 3 ; Servo IC 1 Channel 2 Capture Control (flag high) ; Servo IC 1 Channel 2 Capture Flag Select Control (user flag) In this mode, issuing a #nHome from the Master will initiate the home move search for the corresponding motor #n Note Homing from Slave If the full accuracy of the position capture is desired, then the MACRO motor’s homing routine can be pre-programmed on the slave in a PLC routine and triggered upon demand with a handshaking flag using MX commands. Software capture with Ixx97 introduces up to 1 background cycle delay which limits the accuracy of the capture. Note In this mode, the slave’s Servo IC m Channel n capture control (I7mn2) and flag select control (I7mn3) have to be configured. MACRO Connectivity 244 Geo Brick LV User Manual MACRO Suggested M-Variables // Macro IC 0 Node 0 Flag Registers M150->X:$003440,0,24 ; Macro IC 0 M151->Y:$003440,0,24 ; Macro IC 0 M153->X:$003440,20,4 ; Macro IC 0 M154->Y:$003440,14,1 ; Macro IC 0 M155->X:$003440,15,1 ; Macro IC 0 M156->X:$003440,16,1 ; Macro IC 0 M157->X:$003440,17,1 ; Macro IC 0 M158->X:$003440,18,1 ; Macro IC 0 M159->X:$003440,19,1 ; Macro IC 0 Node Node Node Node Node Node Node Node Node 0 0 0 0 0 0 0 0 0 flag status flag command TUVW flags amplifier enable node/amplifier home flag positive limit negative limit user flag // Macro IC 0 Node 1 Flag Registers M250->X:$003441,0,24 ; Macro IC 0 M251->Y:$003441,0,24 ; Macro IC 0 M253->X:$003441,20,4 ; Macro IC 0 M254->Y:$003441,14,1 ; Macro IC 0 M255->X:$003441,15,1 ; Macro IC 0 M256->X:$003441,16,1 ; Macro IC 0 M257->X:$003441,17,1 ; Macro IC 0 M258->X:$003441,18,1 ; Macro IC 0 M259->X:$003441,19,1 ; Macro IC 0 Node Node Node Node Node Node Node Node Node 1 1 1 1 1 1 1 1 1 flag status register flag command register TUVW flags amplifier enable flag node/amplifier fault flag home flag positive limit flag negative limit flag user flag // Macro IC 0 Node 4 Flag Registers M350->X:$003444,0,24 ; Macro IC 0 M351->Y:$003444,0,24 ; Macro IC 0 M353->X:$003444,20,4 ; Macro IC 0 M354->Y:$003444,14,1 ; Macro IC 0 M355->X:$003444,15,1 ; Macro IC 0 M356->X:$003444,16,1 ; Macro IC 0 M357->X:$003444,17,1 ; Macro IC 0 M358->X:$003444,18,1 ; Macro IC 0 M359->X:$003444,19,1 ; Macro IC 0 Node Node Node Node Node Node Node Node Node 4 4 4 4 4 4 4 4 4 flag status register flag command register TUVW flags amplifier enable flag node/amplifier fault flag home flag positive limit flag negative limit flag user flag // Macro IC 0 Node 5 Flag Registers M450->X:$003445,0,24 ; Macro IC 0 M451->Y:$003445,0,24 ; Macro IC 0 M453->X:$003445,20,4 ; Macro IC 0 M454->Y:$003445,14,1 ; Macro IC 0 M455->X:$003445,15,1 ; Macro IC 0 M456->X:$003445,16,1 ; Macro IC 0 M457->X:$003445,17,1 ; Macro IC 0 M458->X:$003445,18,1 ; Macro IC 0 M459->X:$003445,19,1 ; Macro IC 0 Node Node Node Node Node Node Node Node Node 5 5 5 5 5 5 5 5 5 flag status register flag command register TUVW flags amplifier enable flag node/amplifier fault flag home flag positive limit flag negative limit flag user flag // Macro IC 0 Node 8 Flag Registers M550->X:$003448,0,24 ; Macro IC 0 M551->Y:$003448,0,24 ; Macro IC 0 M553->X:$003448,20,4 ; Macro IC 0 M554->Y:$003448,14,1 ; Macro IC 0 M555->X:$003448,15,1 ; Macro IC 0 M556->X:$003448,16,1 ; Macro IC 0 M557->X:$003448,17,1 ; Macro IC 0 M558->X:$003448,18,1 ; Macro IC 0 M559->X:$003448,19,1 ; Macro IC 0 Node Node Node Node Node Node Node Node Node 8 8 8 8 8 8 8 8 8 flag status register flag command register TUVW flags amplifier enable flag node/amplifier fault flag home flag positive limit flag negative limit flag user flag MACRO Connectivity 245 Geo Brick LV User Manual // Macro IC 0 Node 9 Flag Registers M650->X:$003449,0,24 ; Macro IC 0 M651->Y:$003449,0,24 ; Macro IC 0 M653->X:$003449,20,4 ; Macro IC 0 M654->Y:$003449,14,1 ; Macro IC 0 M655->X:$003449,15,1 ; Macro IC 0 M656->X:$003449,16,1 ; Macro IC 0 M657->X:$003449,17,1 ; Macro IC 0 M658->X:$003449,18,1 ; Macro IC 0 M659->X:$003449,19,1 ; Macro IC 0 Node Node Node Node Node Node Node Node Node 9 9 9 9 9 9 9 9 9 flag status register flag command register TUVW flags amplifier enable flag node/amplifier fault flag home flag positive limit flag negative limit flag user flag // Macro IC 0 Node 12 M750->X:$00344C,0,24 M751->Y:$00344C,0,24 M753->X:$00344C,20,4 M754->Y:$00344C,14,1 M755->X:$00344C,15,1 M756->X:$00344C,16,1 M757->X:$00344C,17,1 M758->X:$00344C,18,1 M759->X:$00344C,19,1 Flag Registers ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node 12 12 12 12 12 12 12 12 12 flag status register flag command register TUVW flags amplifier enable flag node/amplifier fault flag home flag positive limit flag negative limit flag user flag // Macro IC 0 Node 13 M850->X:$00344D,0,24 M851->Y:$00344D,0,24 M853->X:$00344D,20,4 M854->Y:$00344D,14,1 M855->X:$00344D,15,1 M856->X:$00344D,16,1 M857->X:$00344D,17,1 M858->X:$00344D,18,1 M859->X:$00344D,19,1 Flag Registers ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node ; Macro IC 0 Node 13 13 13 13 13 13 13 13 13 flag status register flag command register TUVW flags amplifier enable flag node/amplifier fault flag home flag positive limit flag negative limit flag user flag MACRO Connectivity 246 Geo Brick LV User Manual Absolute Position Reporting Over MACRO ! Writing to the motor actual position (Mxx62) should only be done when the motor is killed. Caution The Geo Brick LV supports a wide variety of absolute encoders. When used as a MACRO slave, the simplest way to report the absolute position to the master (ring controller) is to use the MACRO auxiliary communication (read/write). Example: Retrieving motor #9’s absolute position from motor #1 on a slave Brick yields the online command (using suggested M-Variables Mxx62): MXR0,M162,M962 which could be ultimately inserted in the initialization PLC. MACRO Connectivity 247 Geo Brick LV User Manual MACRO Configuration Power-Up Sequence Typically, in a MACRO master-slave configuration, it is desirable to power up the slave first and then the master. This ensures proper establishment of MACRO communication. If this is not desirable or possible, the following procedure should ensure that MACRO communication is properly initiated. But either way, clearing MACRO ring faults is always recommended on power up in the following order: 1. Power up slave (logic power). 2. Issue a local clear fault command – in an initialization PLC. CMD"CLRF" 3. Power-up master (logic power). 4. Insert a 1 second delay in an initialization PLC This allows the slave to clear its own fault locally first. 5. Issue a local clear fault command – in the initialization PLC. CMD"CLRF" 6. Insert a 250 millisecond delay 7. Broadcast a MACRO clear fault command – in the same PLC CMD"MSCLRF15" 8. Insert a 250 millisecond delay ! Caution MACRO Connectivity Make sure that the PLC logic is latched properly (scan initialization PLCs once), sending CLRF and MSCLRF commands repeatedly locks up MACRO communication. 248 Geo Brick LV User Manual TROUBLESHOOTING Serial Number and Board Revisions Identification The following Serial Number Page provides the users with information about their Geo Brick LV without having to open the enclosure by simply inserting the serial number and pressing the enter key: This page will display: Description and part number of the top assembly (Brick Drive LV) Part numbers and revision numbers of the sub-assembly boards Top assembly original ship date Top assembly last ship date (e.g. if it has ever been back for repair) Note Troubleshooting This page is strictly for identification purposes. Some information may not be meaningful to the user and pertains to Delta Tau’s internal use only. 249 Geo Brick LV User Manual D1: Error Codes The Geo Brick LV utilizes a scrolling single-digit 7-segment display to exhibit amplifier faults. In normal operation mode (logic and DC bus power applied), the Geo Brick LV will display a solid dot indicating that the software and hardware are running normally. DISPLAY DESCRIPTION Solid Dot: Normal mode operation. No fault (s) GLOBAL FAULTS Under Voltage: Indicates that the bus voltage is not present or less than 12Volts Over Voltage: Indicates that the bus voltage has exceeded 85Volts Over Temperature: Indicates that the (internal) electronics have exceeded 65°C AXIS n FAULT (n = 1 through 8) n n Axis n Over load: Indicates that channel n ‘s current rating (0.75A / 3A / 15A) has been exceeded Axis n Over Current: Indicates that channel n ‘s peak current has exceeded the permissible limit (20 A) Note Troubleshooting In order to reset (clear) the amplifier faults through software, the power-on PLC (which specifies the motor types, clears error bits, and activates the strobe word write-protect) must be enabled. 250 Geo Brick LV User Manual Strobe Word and Axes Data Structures The amplifier processor in the Geo Brick LV conveys data and certain status bits to the PMAC user. This information, pertaining to a specific channel, is sent over using the ADC registers of each channel. Strobe Word Structure These functions are established by sending commands to the amplifier processor from the PMAC using the ADC Strobe Word: PMAC Variable Description Address I7006 Axis 1-4 ADC Strobe Word X:$78014 I7106 Axis 5-8 ADC Strobe Word X:$78114 Address Axis $F =000 ($0) Axis 1 =001 ($1) Axis 2 =010 ($2) Axis 3 =0 Protect =011 ($3) Axis 4 =1 Write =0 Servo =1 Stepper Bit # 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Value 1 1 1 1 1 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 =0 Save =1 Write See decription =0 No Reset =1 Reset Always $FE =0 I2T fault =1 I2T Warning About bits [12:9]: Before 8/18/2009 These bits are used to set the I2T limit of the axis. 8/18/2009 – 10/1/2012 These bits have no significance. I2T is set automatically in the firmware. After 10/1/2012 Bits [11:10] are command bits for displaying either firmware version or current option in ADC B. If bits [11:10] = 11 then ADC B bits [9:6] display the amplifier firmware version. If bits [11:10] = 00 then ADC B bits [7:6] display the axis current option. Troubleshooting 251 Geo Brick LV User Manual ADC A Status Word ADC A Current Value Status Bits Reserved Bit # 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 =0 Servo =1 Stepper Bits [8:6] (hex) Error Code 000 ($0) No error, Not ready 001 ($1) No error, Ready 010 ($2) Bus Under-Voltage Warning 011 ($3) Over-Temperature ( > 70°C) 100 ($4) Over Voltage ( > 85 VDC) 101 ($5) I2T Warning/Fault 110 ($6) Over-Current Fault These status bits can be useful for custom-written graphic user interface allowing the display of faults to the operator. Note ADC B Status Word ADC B Current Value Axis Current Option Reserved Bit # 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Amplifier Firmware Version Code If bits [11:10] of the Strobe Word are = 11 then ADC B bits [9:6] display the amplifier firmware version. If bits [11:10] of the Strobe Word are = 00 then ADC B bits [7:6] display the axis current option: Bits [7:6] Current Option 00 5A / 15A 01 1A / 3A 10 11 0.25A / 0.75A Troubleshooting 252 Geo Brick LV User Manual LED Status Symbol Function(s) State Light Description RLY X9 Axis#5 Status Brake/Relay#5 Status On Off Green Unlit Green when Axis#5 Enabled or Brake/Relay#5 output is true RLY X10 Axis#6 Status Brake/Relay#6 Status On Off Green Unlit Green when Axis#6 Enabled or Brake/Relay#6 output is true RLY X11 Axis#3 Status Brake/Relay#3 Status On Off Green Unlit Green when Axis#3 Enabled or Brake/Relay#3 output is true RLY X12 Axis#4 Status Brake/Relay#4 Status On Off Green Unlit Green when Axis#4 Enabled or Brake/Relay#4 output is true +5V +5V Logic Power On Off Green Unlit Green indicates good +5V controller power. Normal mode operation. WD Watchdog On Off Red Unlit Red when watchdog has tripped. Unlit is normal mode operation. On Off On Off Red Unlit Green Unlit Red when +24V is disconnected (ABORT is true) Active Abort Status Inactive Abort Status Green when +24V is applied (ABORT is not true, Normal mode operation) The abort functionality is only available with Turbo PMAC firmware 1.947 or newer, and with I35=1. Note Troubleshooting 253 Geo Brick LV User Manual Boot Switch SW (Firmware Reload) – Write-Protect Disable This momentary button switch has two essential functions: 1. Putting the Geo Brick LV in Boostrap Mode for reloading PMAC firmware. 2. Disabling the USB/Ethernet communication write-protection for Changing IP address, Gateway IP or MASK Enabling ModBus Reloading communication boot and firmware These functions are accessible through the Configure Ethernet 100 BaseT utility found in the Windows Start menu under PMAC Executive Pro2 Suite > Delta Tau Common > Configure Ethernet 100 BaseT: Note Troubleshooting This utility only works with USB communication. The Pewin32Pro2 or any other software communicating to the Brick must be closed before launching this utility. 254 Geo Brick LV User Manual Reloading PMAC firmware The following steps ensure proper firmware reload/upgrade. Step1: Power up the unit while holding the BOOT SW switch down. Step2: Release the BOOT SW switch approximately 2-3 seconds after power-up. Step3: Launch the Pewin32Pro2. Run the PMAC Devices window under Setup > Force All Windows To Device Number. Click Test for the corresponding communication method. Click ok for message “The PMAC is in Boostrap Mode” Troubleshooting 255 Geo Brick LV User Manual Step4: The download utility will prompt for a .BIN file. MAKE SURE you open the correct file. Regardless of the version number, The PMAC firmware file for Geo Brick LV MUST ALWAYS be TURBO2.BIN Note Step4: Wait until download is finished, and click done. Step5: Close all PMAC applications (i.e. Pewin32Pro2), and recycle power. Troubleshooting 256 Geo Brick LV User Manual Changing IP Address, Gateway IP, Or Gateway Mask In order to change any of these addresses, the BOOT SW switch has to be held down prior to pressing the corresponding Store button. The following steps ensure proper configuration: Step1: Step2: Step3: Change the desired address field Hold the BOOT SW switch down Press on the corresponding Store button Store IP for changing IP address Gateway IP for changing Gateway IP Gateway Mask for changing Gateway Mask Step4: Release the BOOT SW switch after the corresponding confirmation message is received: For changing the IP address, follow through the subsequent messages for setting up windows registry for Pcomm32. Gateway IP Gateway Mask Step5: Click on Done, and recycle logic power (24V) on the Brick Troubleshooting 257 Geo Brick LV User Manual Enabling ModBus A Brick unit ordered initially with the ModBus option is normally enabled by factory. However, ModBus is a field upgradeable option. The user needs to provide Delta Tau (or their local distributor) with the MAC ID of the Brick unit. This is found in the lower left hand side of the Ethernet 100 Base T utility. Upon purchase of the ModBus Option, a .BIN file is obtained from Delta Tau for this purpose. Installing this feature successfully requires the following procedure: Step1: Hold the BOOT SW switch button down Step2: Click on ModBus Option. The utility will prompt for the .bin file. MAKE SURE you open the correct file. Step3: Release the BOOT SW switch button after the ModBus unlocked message is generated. Step4: Click on Done, and recycle logic power (24V) on the Brick Troubleshooting 258 Geo Brick LV User Manual Reloading Boot And Communication Firmware The boot and firmware .IIC files are required for this procedure. They are normally obtained directly from Delta Tau, or downloaded from the Forums. The following steps ensure proper configuration: ! Downloading the wrong boot or communication files will severely corrupt the functionality of the communication processor. Caution Step1: Hold the BOOT SW switch down Step2: Click on Store Boot Step3: The utility will prompt for the boot file. MAKE SURE you open the correct .IIC file (ending with BootFx2.iic) and wait for “firmware load successful” message Step4: Click on Store F/W Note The BOOT SW switch button can be released temporarily (between file downloads). But it MUST to be held down the entire time the boot or firmware files are being written. Step5: The utility will prompt for the Firmware file. MAKE SURE you open the correct .IIC file (ending with ETHUSB307FX2.iic) and wait for “firmware load successful” message Step6: Release the BOOT SW switch. Click Done, and recycle logic power (24V) on the Brick. Troubleshooting 259 Geo Brick LV User Manual Reset Switch SW (Factory Reset) This momentary switch button is used to reset the Geo Brick LV back to factory default settings, global reset. ! Issuing a SAVE after power up (with the reset switch held down) will permanently erase any user configured parameters. Caution Reset SW instructions: Power down the unit then power back up while holding the Reset SW switch down. Release the Reset SW once the unit is powered up. The factory default parameters are now restored from the firmware EEPROM into the active memory. Issue a SAVE and a $$$ to maintain the factory default settings. For traditional PMAC users, this switch is the equivalent of Jumper E51 on PC-based or standalone boards. Note Troubleshooting 260 Geo Brick LV User Manual Error 18 (Erro18) Error 18 “Attempt to perform phase reference during move, move during phase reference, or enabling with phase clock error” is highlighted in red in the terminal window: This error occurs if any of the following is true: The addressed motor is not phased. In this mode, the phasing search error bit is highlighted in the Motor Status window. No Phase Clock (internal). In this mode, the Phase Clock Missing bit is highlighted in the Global Status window. +24V Abort not applied (firmware 1.947 or later, and I35=1). In this mode, the Abort Input bit is highlighted in the Global Status window. Troubleshooting 261 Geo Brick LV User Manual Watchdog Timer Trip The watchdog timer trigger in the Geo Brick LV illuminates the red WD LED and interrupts communication. It occurs if any of the following is true: PMAC CPU over-clocked In this mode, the CPU signals that is has been overloaded with computation and cannot accomplish tasks in a timely manner. i.e. bad programming such as an infinite loop, or too much computation (Kinematics) requiring faster CPU option. Wrong clock settings In this mode, the user has downloaded or written bad values to clock setting parameters. Hardware +5V failure (internal) In this mode, the internal 5V logic circuitry has failed. Check 5V Led Status. Downloading wrong configuration file (I4900). In this mode, the user has reloaded a bad configuration file. For example, a configuration file uploaded from a 4-axis Geo Brick LV (Servo IC 1 parameters set to zero) and restored into an 8-axis unit, thus writing zero to the second Servo IC clock parameters will cause a watchdog. Commenting out variables I7100…7106 (or forcing them to hold the same values as I7000…I7106) eliminates the watchdog problem. Troubleshooting 262 Geo Brick LV User Manual APPENDIX A D-Sub Connector Spacing Specifications X1-X8: DA-15 Connectors for encoder feedback 3.115±.05 1.541±.015 8 7 6 15 14 5 4 13 12 3 2 11 10 8 1 9 7 15 6 14 5 13 4 12 3 11 2 10 1 9 X9-12: DE-9 Connectors for Analog I/O 2.45±.05 1.213+.015 5 4 9 3 8 2 7 1 5 6 4 9 3 8 2 7 1 6 Screw Lock Size for all D-sub connectors .18 7 #4-40 FEMALE SCREWLOCK QTY 2 per connector Steel, Zinc Plated Appendix A .235 DIA .126 DIA LOCKWASHER QTY 2 per connector Clear Chromate 263 Geo Brick LV User Manual APPENDIX B Control Board Jumpers (For Internal Use) E6 – E9: AENA/GPIO Selection Jumper E-Point E6 2 1 2 Jump pins 1 to 2 for GPIO1 on X9 Jump Pins 2 to 3 for AENA5 on X9 See Part Number 3 Jump pins 1 to 2 for GPIO2 on X10 Jump Pins 2 to 3 for AENA6 on X10 See Part Number 3 Jump pins 1 to 2 for GPIO3 on X11 Jump Pins 2 to 3 for AENA3 on X11 See Part Number 3 Jump pins 1 to 2 for GPIO4 on X12 Jump Pins 2 to 3 for AENA4 on X12 See Part Number E8 2 1 E9 2 1 Default 3 E7 1 Description E10 – E12: Power-Up/Reset Load Source E-Point Description Default E10 1 2 E10 removed to load active memory from Flash IC on power-up No Jumper E11 1 2 Jump1-2 for normal mode operation Installed Jump1-2 for normal mode operation Installed E12 1 2 Appendix B 264 Geo Brick LV User Manual E13: Firmware Reload Enable (BOOT SW) E-Point E13 1 2 Description Install E13 to reload firmware through the communications port. Remove jumper for normal operations. Default No Jumper E14: Watchdog Disable Jumper E-Point E14 1 2 Description Jump 1 to 2 to disable Watchdog timer (for test purposes only, can be hazardous). Remove jumper to enable Watchdog timer. Default No Jumper E25-28: Select Encoder Index input or AENA output (channels 1-4) E-Point E25 1 2 E26 1 2 E27 1 2 E28 1 2 Description Default No Jumper for TTL Level input for Ch1 Index signal (C) Jumper 1-2 to output AENA1 at Ch1 encoder connector No Jumper No Jumper for TTL Level input for Ch2 Index signal (C) Jumper 1-2 to output AENA2 at Ch2 encoder connector No Jumper No Jumper for TTL Level input for Ch3 Index signal (C) Jumper 1-2 to output AENA3 at Ch3 encoder connector No Jumper No Jumper for TTL Level input for Ch4 Index signal (C) Jumper 1-2 to output AENA4 at Ch4 encoder connector No Jumper E35-38: Select Encoder Index input or AENA output (channels 5-8) E-Point E35 1 2 E36 1 2 E37 1 2 E38 1 2 Description Default No Jumper for TTL Level input for Ch5 Index signal (C) Jumper 1-2 to output AENA5 at Ch5 encoder connector No Jumper No Jumper for TTL Level input for Ch6 Index signal (C) Jumper 1-2 to output AENA6 at Ch6 encoder connector No Jumper No Jumper for TTL Level input for Ch7 Index signal (C) Jumper 1-2 to output AENA7 at Ch7 encoder connector No Jumper No Jumper for TTL Level input for Ch8 Index signal (C) Jumper 1-2 to output AENA8 at Ch8 encoder connector No Jumper E40: USB/Ethernet Communication Firmware Load Enable E-Point E40 1 2 Appendix B Description Remove Jumper to reload communication firmware Default Installed 265 Geo Brick LV User Manual APPENDIX C Schematic Samples Watchdog: X15 Inputs: J6 & J7 Appendix C 266 Geo Brick LV User Manual Outputs: J6 & J7 (603793 – 109 and earlier) Outputs: J6 & J7 (603793 – 10A and later) Appendix C 267 Geo Brick LV User Manual Limits & Flags: J4 Appendix C 268 Geo Brick LV User Manual APPENDIX D Absolute Serial Encoders Limitation with Turbo PMAC The following is a summary of certain limitations which could be encountered with higher resolution absolute serial encoders, and a description of related registers with respect to the proposed setup techniques. Note that techniques 1 and 3 are processed in the Encoder Conversion Table (ECT) using the standard 5-bit shift, whereas technique 2 is processed with no shift. Quick Comparison Parameter/Description Resolution Scale Factor (SF) Technique 1/3 SF =2 Rotary SF =1/(32*RES) 2 *ServoClk 2 *3/(Ixx08*32) Rotary 47 2 /SF =2 47-ST 47 2 /SF =2 counts/revolution counts/user unit counts/msec 47-(ST-5) 247/SF Linear Units counts/msec 23 Maximum closed-loop velocity Where ST: RES: ServoClk: Ixx08: ST-5 18 Maximum open-loop velocity Maximum travel before rollover SF =2 SF =1/RES Linear Technique 2 ST revolutions user units is the rotary encoder Singleturn resolution in bits is the linear encoder resolution in user units (e.g. mm) is the PMAC servo update rate in KHz is Motor xx’s position scale factor Resolution Scale Factor (SF) Turbo PMAC expects the motor count Least Significant Bit LSB to be left-shifted (5 bits), per techniques 1 or 3. The only difference then with technique 2, when unshifted, is that the motor position loop will now consider 1 LSB of the source to be 1/32 of a motor count, instead of 1. Example: Take a 37-bit absolute serial rotary encoder (25-bit single turn, 12-bit multi-turn) and its equivalent linear scale (e.g.10 nm resolution): Technique 1/3 (5-bit shift) Rotary 2ST 225= 33,554,432 counts/revolution Linear 1/RES 1/0.00001= 100,000 counts/mm Technique 2 (no shift) Rotary 2ST-5 220= 1,048,576 counts/revolution Linear 1/(32*RES) 1/32*0.00001= 3,125 counts/mm Note Appendix D Regardless of the processing technique, the servo algorithm utilizes “internally” the entire data bits stream (i.e. 25 bits) for its calculation. The performance is not compromised. 269 Geo Brick LV User Manual Maximum “Actual” Open-Loop Velocity In open-loop mode, the actual velocity register is limited by the Encoder Conversion Table to 24 bits. Furthermore, it requires two samples (servo cycles) to compute the velocity. Therefore, the maximum value which the actual velocity register can withhold is: When performing an open-loop move/test with higher resolution serial encoders, care must be taken not to exceed this threshold. You will see saturation plateau lines in the position data if it is plotted during the move. At this point, re-establishing an absolute position read (using custom plc, or automatic settings) is necessary to avoid fatal following errors in closed loop and or to be able to perform proper motor phasing. Example: Take a 37-bit absolute serial rotary encoder (25-bit single turn, 12-bit multi-turn) and its equivalent linear scale (e.g.10 nm resolution), and compare for two different clock settings: With the default servo clock of 2.258 KHz, the maximum actual open-loop velocity is MaxActVel=218*2.258= 591,921 [counts/msec] yielding: Technique 1/3 (5-bit shift) Rotary [rpm] =MaxActVel*60000/SF 1,058 Linear [mm/sec] =MaxActVel*1000/SF 5,919 Technique 2 (no shift) 33,870 189,414 With a servo clock setting of 4.500 KHz, the maximum actual open-loop velocity is MaxActVel=218*4.500= 1,179,648 [counts/msec] yielding: Technique 1/3 (5-bit shift) Technique 2 (no shift) Note Appendix D Rotary [rpm] =MaxActVel*60000/SF 2,109 Linear [mm/sec] =MaxActVel*1000/SF 11,796 67,500 377,487 The maximum actual velocity attainable is directly proportional to the servo clock frequency. The faster the servo update, the higher is the actual velocity threshold. 270 Geo Brick LV User Manual Maximum “Commanded” Closed-Loop Velocity In closed-loop mode, the commanded (desired) velocity register is limited to: In terms of motor counts per millisecond, the maximum commanded velocity will be the same with or without shifting but since the number of counts per revolution “unshifted” is 32 times less, then the maximum programmable velocity is 32 times greater. Example: Take a 37-bit absolute serial rotary encoder (25-bit Singleturn, 12-bit Multiturn) and its equivalent linear scale (e.g.10 nm resolution). The maximum ‘commanded” closed-loop velocity (Ixx16, Ixx22) setting programmable in Turbo PMAC is: 786,432 [counts/msec] with Ixx08=1 8,192 [counts/msec] with Ixx08=96 With Ixx08=1 Technique 1/3 (5-bit Shift) Technique 2 (no Shift) With Ixx08=96 Technique 1/3 (5-bit Shift) Technique 2 (no Shift) Note Rotary [rpm] =MaxCmdVel*60000/SF 1,406 Linear [mm/sec] =MaxCmdVel*1000/SF 7,864 45,000 251,658 Rotary [rpm] =MaxCmdVel*60000/SF 14.645 Linear [mm/sec] =MaxCmdVel*1000/SF 81.916 468.667 2621.334 Notice the lower programmable closed-loop velocity settings with techniques 1 and 3 (5-bit shift), associated with the default position scale factor Ixx08 of 96. Maximum Motor Travel In Jog mode, the rollover is handled gracefully by PMAC and jogging can be virtually performed forever. However, this can be problematic when running a motion program indefinitely in incremental mode where the 48-bit fixed motor register can roll over much sooner than the 48-bit floating axis register. Note Absolute Serial Encoders with limited multi-turn range normally do roll over way before the motor position register in Turbo PMAC does (i.e. 12-bit multi-turn is 2048 revolutions in each direction) Example: Take a 37-bit absolute serial rotary encoder (25-bit single turn, 12-bit multi-turn) and its equivalent linear scale (e.g.10 nm resolution): Technique 1/3 (5-bit shift) Technique 2 (no shift) Appendix D Rotary Linear Rotary Linear Total Travel Span In each direction = Span/2 Units 247-25 = 4,194,304 247/SF 247-20= 134,217,728 247/SF 2,097,152 1,407,374,883 67,108,864 45,035,996,274 revolutions mm revolutions mm 271
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.5 Linearized : No Page Count : 271 Language : en-US Tagged PDF : Yes Title : Geo Brick LV User Manual Author : Richard Naddaf Creator : Microsoft® Word 2010 Create Date : 2015:02:14 18:14:56-08:00 Modify Date : 2015:02:14 18:14:56-08:00 Producer : Microsoft® Word 2010EXIF Metadata provided by EXIF.tools