background image

 

MAKING MOTION 

 

 

ACR Programmer’s Guide   

205

 

Inverse Kinematics 

Kinematics is a branch of mechanics that provides a mathematical means of describing motion.  Inverse kinematics 
looks at a position and works backwards to determine the motions necessary to obtain that position. 

Robotic applications frequently use inverse kinematics.  Algorithms describe the mechanical system and translate 
the rotational motion of robotics into Cartesian coordinates.  Consequently, an end user provides simple 
Cartesian coordinates for an application and the inverse kinematics calculates necessary movements to reach that 
position. 

Suppose an application has a cutting tool at the end of a four-axis robotic arm and an HMI.  The controller, using 
algorithms developed by the application builder, transforms the motion target points from Cartesian coordinates 
to rotational coordinates to position the arm joints and cutting tool.  Once transformed, the controller 
interpolates the target points to generate a motion path.  See the illustration below: 

 

Programming the Inverse Kinematics 

Each application is different.  The algorithm for your application can consist of equations, logical expressions and 
commands in the AcroBASIC language.  You can do the following: 

 

Store algorithms in any of the programs 0 through 14 (be sure to dimension memory for the program). 

 

Save the program to Flash memory. 

 

Use the 

PASSWORD

 command to protect the program from uploading or listing. 

 

Include the 

INVK

 commands in a program, or in the setup before a program. 

Example 

The following program results in a circle instead of a straight line because of the transformation described in 
program 7 (PROG7). 

PROG7 
PROGRAM 
P12361= SIN(P12360)  

: REM Describe transformation in PROG7. 

P12617= COS(P12360)  

: REM Describe transformation in PROG7. 

ENDP 
PROG0 
ATTACH MASTER0 
ATTACH SLAVE0 AXIS0 "X" 

Summary of Contents for ACR7000 Series

Page 1: ...Effective June 2021 Document Number 88 028698 01E Programmer s Guide ACR Series Controllers ...

Page 2: ...sers and may not be copied disclosed or used for any purpose not expressly authorized by the owner thereof Since Parker Hannifin constantly strives to improve all of its products we reserve the right to change this guide and software and hardware mentioned therein at any time without notice In no event will the provider of the equipment be liable for any incidental consequential or special damages...

Page 3: ...ors Never touch any part of the equipment while it is in operation This product is sold as a motion control component to be installed in a complete system using good engineering practice Care must be taken to ensure that the product is installed and used in a safe manner according to local safety laws and regulations In particular the product must be positioned such that no part is accessible whil...

Page 4: ...egin 21 Assumptions of Technical Experience 21 Before You Begin 22 CHAPTER 1 Parker Motion Manager 23 Parker Motion Manager 24 Getting Started with PMM 25 Connection 26 Uploading a Project from the Controller to PMM 28 Procedure 28 Downloading a Project from PMM to the Controller 29 Procedure 29 Reference 31 Parker Motion Manager Parts 33 Menu 33 File Menu 34 Edit Menu 34 Tools Menu 34 Window Menu...

Page 5: ...Terminal Emulator 38 Tools 39 Status Panels 39 Scopes 39 Message Window 39 Watch Windows 40 Configuration Wizard 43 Axes 43 Master Units 45 Drive Motor 46 Drive Motor ACR7xT Stepper 46 Motor Settings 46 Drive Settings 46 Drive Motor ACR7xV Servo or IPA 47 Drive Motor ACR7xC 48 Feedback 49 Scaling 50 Specify Transmission 51 Specify Reducer s 51 ...

Page 6: ...imum Position Error Detection 53 Position Maintenance Settings 53 Memory 54 Finish and System Code 55 Program Editor 56 Terminal Emulator 57 Prompts 57 Basic Terminal Operations 57 User Buttons 61 Tools 63 Servo Tuner 63 Channels 63 Position Loop Gains 65 Move Configuration 65 Timebase 66 Display 68 Status Axis 0 68 The Scope 68 Jog Home Limits 70 Communications 70 Drive 70 ...

Page 7: ...s Status Bits 79 Programs 79 Axis Position 79 Master 80 Online Status 80 Motion Enable Input 80 Drive Status Panel ACR7xV and ACR7xT 80 Control Status 81 Drive Faults 82 Controller Information 82 Common Status Panel IPA 83 Status 83 Buttons 83 Control Status and Drive Faults 84 Controller Information 84 Programs 85 Numeric Status 85 Bit Status 88 Ethernet IP Status Panel 89 ...

Page 8: ...Servo Loop Status 92 Scopes 93 Common Tools 93 Channels 93 Timebase 94 Controls 94 Display 96 The Scope 97 Oscilloscope 98 Strip Chart 99 XY Plot 100 CHAPTER 2 ACR Basics 101 ACR Basics 102 Delimiter 102 Remarks 103 Program Labels 104 Move Default Motion 104 Axis Names 105 Stopping Motion 107 Program Flow 109 Wait for Bit or Parameter 110 ...

Page 9: ...rameters and Variables 116 User Bits and Parameters 117 Using Parameters and Bits 118 Setting Binary Bits 118 Clearing Binary Bits 118 Printing the Current Value 119 A Word on Aliases 119 Programming Example 119 Local Variables 120 Defines 121 Starting Pausing and Halting Programs 123 Running a Program 123 Running a Program at Power Up 123 Listening to a Program 123 Viewing a Running Program 123 H...

Page 10: ...nal Order 125 Nested Parentheses 126 Examples 126 Example Code Conventions 127 ACR System 128 ACR Architecture 128 Ethernet 130 Ethernet TCP IP 130 EtherNet IP Scanner 130 EtherNet IP Node 131 Ethernet IP Peer to Peer 131 Command Syntax 133 Description of Format 133 Arguments and Syntax 134 Variable Substitution Syntax 135 Nested Commands Syntax 136 Commands Lists 137 Axis Limits 137 Character I O...

Page 11: ... Flow 142 Servo Control 143 Setpoint Control 143 Transformation 144 Velocity Profile 144 Startup Programs 145 Resetting the Controller 145 Memory 146 Return to Factory Default 146 Configuration 147 What is Configuration Code 147 The Code 147 Resources Reserved for Generated Code 151 Flash Memory 152 CHAPTER 3 Making Motion 153 Making Motion 154 Four Basic Categories of Motion 154 Move Types 154 ...

Page 12: ...ion Between Motion Profilers 159 Primary Setpoint 159 Velocity Profile Commands 162 Velocity Profile Setup 162 Feedback Control Commands 163 REN Details 164 RES Details 165 Coordinated Moves Profiler 166 Jog Profiler 168 JOG VEL Details 172 JOG Commands 173 JOG REN Details 174 JOG RES Details 175 Gear Profiler 176 Cam Profiler 178 Homing 180 Homing Subroutines 182 Basic Homing Homing Backup Disabl...

Page 13: ... 191 Blended Tiered Interpolated Moves 193 High speed Position Capture INTCAP 193 Lock 195 Rotary Axis 197 External Time Base 198 Servo Loop Fundamentals 198 Setpoint Compensation 198 Viewing the Setpoint Calculations 199 Following Error 199 Ballscrew Compensation 200 BSC with PPU 200 Encoder Accuracy 201 Slope Correction 201 Inverse Kinematics 205 Programming the Inverse Kinematics 205 CHAPTER 4 ...

Page 14: ...al Jog Moves Subroutine 213 Absolute and Incremental Jog Moves Subroutine 213 Homing Subroutine 213 Advanced Homing 214 Homing for XYZ System 215 Open Sample 217 Teach Array 218 Programmable Limit Switch 219 EIP Scanner Wago 750 221 Joystick 222 Capture Data 224 Peer to Peer 225 ACR7xT Status 225 ACR7xT Home to Hard Stop 227 Time Subroutine 228 Error Recovery IPA 229 Add On Instructions AOIs for I...

Page 15: ...Interface 238 Binary Host Interface 239 Binary Data Transfer 239 Control Character Prefixing 240 Transmitting 240 Receiving 240 High Bit Stripping 240 Transmitting 241 Receiving 241 Binary Data Packets 241 Packet Request 241 Group Code and Index 241 Isolation Mask 241 Parameter Access 242 Packet Header 242 Packet Data 242 Usage Example 243 Binary Parameter Access 243 Usage Example 243 Binary Get L...

Page 16: ...age Example 249 Binary Parameter Address Command 250 Usage Example 250 Binary Mask Command 251 Usage Example 251 Binary Parameter Mask Command 252 Usage Example 252 Binary Move Command 252 Header Code 0 254 Move Modes 258 Linear Moves 260 Arc Moves 260 NURB or SPLINE Moves 261 Binary SET and CLR 261 Binary FOV Command 262 Binary ROV Command 264 Application Binary Global Parameter Access 266 Descri...

Page 17: ... Controller 281 Setting the IP Address and Subnet Mask PC 281 Verifying the IP Address 284 Troubleshooting 284 Lost the ACR s IP Address 285 Finding an ACR with the Scan Tool 285 Finding an ACR Using WireShark 286 Resetting the ACR74T via Hardware 287 APPENDIX B Ethernet Basics 288 Ethernet Basics 289 IP Addresses Subnets and Subnet Masks 289 IP Addresses 289 Subnets 291 Subnet IDs 291 Subnet Mask...

Page 18: ...and Tricks 297 Can t reach speed 298 Can t accelerate 298 Derivative Smoothing 298 Advanced Tuning Gains 298 FF Velocity FFVEL 298 FF Acceleration FFACC 298 Derivative Width DWIDTH 298 Feedback Velocity FBVEL 299 Lowpass Filter LOPASS 299 Notch Filter NOTCH 299 APPENDIX D PMM Improvements Over ACR View 300 PMM Improvements Over ACR View 301 APPENDIX E ACR7xC ACR9000 Comparison 317 ACR7xC ACR9000 C...

Page 19: ...ENDIX H ACR7000 Bits and Parameters 331 ACR7000 Bits and Parameters 332 ACR7xT Control and Status Bits 332 ACR7xT Latched Fault and Warning Bits 332 ACR7xT Control and Status Parameters 333 ACR7xV Configuration Bits and Parameters 334 ACR7xV Status Parameters 338 ACR7xV Status 1 Flags 338 ACR7xV Status 2 Flags 340 ...

Page 20: ...mer s Guide and the corresponding section of Parker Motion Manager Online Help Revision E Changes Document 88 028698 01E ACR Programmer s Guide supersedes document 88 028698 01D Changes associated with this document are noted in this section Updated for ACR7000 series and IPA adding Parker Motion Manager For prior ACR products see previous revision D ...

Page 21: ...Reference Provides detailed descriptions of all AcroBASIC language commands with examples ACR Parameter Bit Reference Provides list of all ACR and IPA Parameters and Bits with explanations EtherNet IP User Guide Feb 2015 How to setup ACR7000 or IPA as master for Wago 750 series expansion I O ComACRServer6 User Guide Provides information about ComACRserver6 and detailed descriptions of its properti...

Page 22: ...d of travel sensors If you are controlling any servo axes complete the servo tuning procedures Be sure to use Parker Motion Manager s built in tuning utility to easily tune the axis and integrate the gains into your motion program If you are new to the AcroBASIC Programming Language begin with the Parker Motion Manager Quick Start and read Chapter 1 Programming Basics thoroughly Keep in mind that ...

Page 23: ...PARKER MOTION MANAGER ACR Programmer s Guide 23 CHAPTER 1 Parker Motion Manager ...

Page 24: ...oBASIC programs Test and debug programs and controller operation Test motion and tune your system to optimize performance Monitor controller integrated drive bit and parameter status Use high performance software oscilloscopes for advanced programming Use an improved Servo Tuner screen featuring auto scaling graphs Ease of use improvements Start Page showing recent projects Projects stored as sing...

Page 25: ...ecent Projects The Start screen can be disabled or re enabled under Tools Options That menu also allows clearing the list of Recent Projects When creating a new project give it a name a location on the hard drive and a type model number on the side of controller The IP address has been set as the controller default of 192 168 100 1 Users can also upload from the controller for existing machines us...

Page 26: ...e Connect button attempts to connect to the controller specified by the IP Address field The PC IP Address field displays your PC s IP address The first three octets numbers of this address will need to match the first three octets of the controller s IP address 192 168 100 x The last number will be between 2 255 and unique on your network Use the PC Network Settings button to change your PC s IP ...

Page 27: ...in the Terminal Emulator to change the controller s IP address Issue the ESAVE command and cycle power to make it take effect Be sure to label and note the controller s IP address For the IPA use dial the switches S1 and S10 to set the IP address or set the dials to 99 and use the IP command like with the ACR7000 Troubleshooting a connection See Connecting to the Controller ...

Page 28: ... dialog If a project is already loaded in PMM it can be updated to match the project on the controller by using the upload button in the Toolbar This guide will show uploading from the New Project dialog as it is the better option for quickly replacing a controller Procedure Step 1 Open Parker Motion Manager Step 2 Click File New Project or the equivalent Toolbar button Step 3 Give the project a n...

Page 29: ... downloaded using a button in the Toolbar This procedure will be explained assuming the user is downloading via the button in the Toolbar Procedure Step 1 Open the Parker Motion Manager project that is going to be downloaded to the controller Step 2 Connect to the controller See the previous section for details on establishing a connection Step 3 Click the download button in the Toolbar Step 4 The...

Page 30: ...R Programmer s Guide Step 5 Wait for the download to finish Step 7 A dialog will appear requesting that the controller be rebooted Click Yes to reboot it which will allow the new motor configurations if applicable to take effect ...

Page 31: ...ect to Controller dialog has several options for choosing what gets downloaded The Controller pull down allows the user to select which controller is being targeted for download This only affects projects with multiple controllers The Download Configuration check box selects whether the Configuration Wizard data System Code will be sent down during the download It is sometimes helpful to uncheck t...

Page 32: ...various items scheduled for download most of which are programs Defines and configuration data are listed as well The Size KB column shows the size of the data The Progress column will show Pending for sections whose download has not started or are not scheduled It will otherwise show how much of a section has been download The S F success failure column shows a red x for sections that failed to d...

Page 33: ...ivided the into seven different sections shown above Menu Toolbar Explorer Workspace Message Window and Watch Window s Each section is further explained in the following pages Menu The Menu bar provides quick access to common project management tools and options Many of them are familiar to Windows users ...

Page 34: ...tools such as Copy and Paste The tools in this menu are only usable in text based editors like the Program Editor and textual fields like the ones in the Memory Configuration screen Tools Menu Provides certain tools specific to PMM Download Project can be used to quickly download an entire project to the controller Upload Project can be used to upload a project from the controller into PMM overwri...

Page 35: ...ch are covered later Help Menu Holds various help related topics Parker Motion Manager User s Guide will open the help file which is an indexed and searchable CHM file designed to allow for rapid look up Parker Motion Manager Release Notes can help in case you believe you have encountered a software bug Take System Snapshot can help if you need to send data about your PC configuration to Parker en...

Page 36: ...ges option can be helpful if you are using a pre release build unusual or need to supply application crash information to Parker support Toolbar The Toolbar is where the most commonly used tools are kept Each tool gets an icon and a tool tip hover over text that helps identify and describe it Icon availability changes automatically and depends upon the Workspace Opens a dialog for creating a new p...

Page 37: ... text Increases the indentation of the selected line in the active program editor Decreases the indentation of the selected line in the active program editor Comments the selected block of text in the active program editor Uncomments the selected block of text in the active program editor Adds a bookmark to selected line in the active program editor Bookmarks are useful for quickly navigating very...

Page 38: ...This wizard is a comprehensive start to finish configuration tool that sets up axis names motor data engineering units I O configuration default move characteristics and more Program Editor The various program editors are where programs are written The Defines editor is a tabular editor where a user can set up named aliases known as defines for commonly used parameters PMM s Defines editor provide...

Page 39: ...he controller The EtherNet IP Status Panel displays connection and fault data specific to EtherNet IP The Servo Loop Status panel visually connects the various position command registers on each axis with the output being generated to meet that position Scopes The scopes allow the user to graph any parameter in the controller to help evaluate performance or track down process issues Message Window...

Page 40: ...ring a reboot Click on column headers to sort messages by that column s data Right clicking the header presents an option to clear messages The messages can also be selected and copied to a text file email or spreadsheet program Watch Windows Watch windows let the user monitor bits and parameters in real time when PMM in online with the controller Four watch windows are available These are saved w...

Page 41: ...right click the define you want to add Then click Watch and select the watch window that should display the define Bits and parameters can also be added to a watch window from the Motion Status Panel or Drive Status Panel To add a bit or parameter right click on the indicator of interest and select a watch window This feature is also supported on the Numeric Status panel ...

Page 42: ...PARKER MOTION MANAGER 42 ACR Programmer s Guide The Bit Status panel can also be used to populate watch windows ...

Page 43: ...ard have three common buttons located at the bottom Previous and Next allow the user to navigate back and forth through the Configuration Wizard Reset to Default sets all parameters on the current screen back to their default values NOTE The information presented here is referential in nature For an example of setting up an ACR for the first time see the Parker Motion Manager Quick Start Guide Axe...

Page 44: ...ach axis must be assigned to a master By default they are all assigned to Master 0 The number of masters available is equal to the number of axes available on the product and is never more than eight Interpolated motion between multiple axes requires that they be attached to the same master Interpolated motion refers to path based motion that requires more than simple sequencing The chart below he...

Page 45: ... the Configuration Wizard is the Master screen Here the units for the master can be selected Users can use inches millimeters degrees revolutions encoder counts or specify their own The units selected here are used throughout the rest of the configuration and in AcroBASIC programs Selecting Inches Millimeters Degrees or Revolutions offers advantages on the Scaling screen later in the configuration...

Page 46: ...t is positive for all rotary motors except the P Series drives with P Series motors which are counterclockwise positive by default For linear motors the default positive direction is away from the cable exit on the coil Drive Motor ACR7xT Stepper This screen allows the user to configure the type of stepper motor connected to this axis Motor Settings For Parker motors use the Motor Series and Motor...

Page 47: ...pe of servo motor connected to this axis Use the Series Frame Stack Winding and Feedback pull downs to configure the model of motor used on this axis The motor model number should be printed on the label on the side of the motor This will set motor parameters such as rated current encoder resolution torque constant and many others For non Parker motors set the Series to Other more on this below Th...

Page 48: ...ell as step and direction If the axis is configured as a stepper axis a Resolution field will be made available next to the drive selection This must be filled out with the drive s command resolution Selecting a Parker drive populates the resolution with the default for that drive It is important to double check the resolution setting on drive to make sure the correct value is entered in this fiel...

Page 49: ...ption is only available for the ACR7xC It allows the user to select either quadrature default encoder feedback or SSI Serial Synchronous Interface The SSI option is useful for interfacing with certain kinds of position sensors including devices that are not traditional encoders It is also useful when interfacing with an Aries AE SE servo drive for legacy machine upgrades Package The user can selec...

Page 50: ...t require feedback but can read the encoder if connected Position Maintenance is available for end of move corrections for stepper systems and can use rotary or linear feedback Scaling The Scaling screen allows users to define a relationship between encoder or stepper counts and engineering units The controller needs to know how many counts are in one inch millimeter degree revolution or whatever ...

Page 51: ...tended to be used for gearheads The top pull down allows the user to select whether a Parker gearhead is being used or some other gearing system If a Parker gearhead is in use the Series pull down can be set to any currently available model family from Parker The Order Code pull down is used to select the gear ratio which will be printed on the product label Non Parker reducers are also supported ...

Page 52: ...it sensors The Hardware Limit Deceleration is the stop rate when the controller encounters a limit sensor Make sure this is high enough to stop the motor stage before the actual hard stop is hit Assign Digital Inputs for Specific Functions This table is where specific digital inputs are assigned as limits and home Any onboard input can be used for any of the three functions The positive negative a...

Page 53: ... allow the user to set different limits in each direction if desired Note that the negative limit must be entered as a negative number Position Maintenance Settings PMM allows Position Maintenance to be enabled for end of move corrections with move settings and deadband This feature only applies to stepper axes with encoder feedback When active Position Maintenance tries to improve precision by is...

Page 54: ...am statements with returns GOSUB IF WHILE and FOR statements and interpolated moves e g X3 Y7 Program 14 has a large allocation for the onboard data capture for scopes The Configuration Wizard settings are stored within Program 15 which has a fixed allocation By default the number of global variables is 4096 P0 P4095 These are 64 bit floating point values available to the user for any use They are...

Page 55: ...ning to go to that section and fix it Warnings do not prevent proceeding to download If PMM is connected to the controller the Download configuration to controller on Finish check box will be available and checked by default Clicking Finish completes the Configuration Wizard and generates the System Code If the aforementioned box is checked it also initiates a project download When Finish is click...

Page 56: ... in Programming Basics The Defines editor provides a central location for defined aliases referred to hereafter as defines Programmers can use defines to refer to bits and parameters by name in their programs Any bit or parameter can be assigned a define Using a define instead of a bit or parameter number can make a program more readable and easier to maintain Defines are global and are recognized...

Page 57: ...ted in the controller SYS is the system prompt Here the programmer can use commands like ATTACH and DIM to query system level information like axis attachments and global memory allocation P00 is the prompt for Program 0 There is a prompt for every program Each program prompt gives the programmer access to the data within that program For instance issuing the DIM command from the P03 prompt displa...

Page 58: ... program has a line number for each line Line numbers proceed in increments of 10 These line numbers are shown in the Motion Status Panel when a program is running When troubleshooting the line number can be used to find out which command is causing a program to stall or abort Programmers can use the Terminal Emulator to temporarily add extra lines of code between the existing ones This is done by...

Page 59: ...ning To exit LISTEN mode press Escape In the above sample bit 82 is a system bit that toggles every second INH is an inhibit command waiting for bit 82 to turn on and INH 82 waits for it to turn off Hence global parameter P10 is incremented every second and is printed as the program loops through _MAIN The status of a bit or parameter can be checked in the Terminal Emulator using the PRINT command...

Page 60: ...the Terminal Emulator Parameter values can be checked with PRINT or Parameters can be assigned values with Programs marked with the PBOOT command are automatically started on power up To start running all PBOOT programs without having to cycle power issue the PBOOT command in the Terminal Emulator To cycle power on a controller issue the REBOOT command Note that the connection will be lost when th...

Page 61: ...ode This can save time and prevent typos while debugging The code is sent with a mouse click In the example above the RUN ALL command starts all programs P10 is a global user parameter and P12290 P12375 is the actual position for Axis 0 scaled in engineering units These commands can be added to a button to automate tedious and repetitive command sequences New for PMM ...

Page 62: ...PARKER MOTION MANAGER 62 ACR Programmer s Guide There are 60 User Buttons 5 groups of 12 with common commands preloaded in the last two ...

Page 63: ...ected from the pulldown in the upper left hand corner of the Servo Tuner Servo gains are listed on the left hand side This section is intended to provide an overview of the Servo Tuner itself For a procedure on tuning a servo axis see Servo PID Tuning The Servo Tuner is broken into several panels Channels Position Loop Gains Timebase Display Move Configuration Status Axis 0 The Graph Channels By d...

Page 64: ...t div This can be altered using the up and down arrow buttons to the right Check Auto Scale Y Axis checked by default to make the graph fit the available vertical space This option is usually preferred as it makes the data easy to read When the user clicks the button to select a new parameter the Parameter Picker dialog appears This dialog helps the user drill down to a parameter of interest by us...

Page 65: ...press Enter to send that value to the controller Otherwise the text will turn blue to indicate that the value has not been sent The Send To Controller button can be used to send multiple values at once This panel comes with several buttons Save To Project saves the values in the panel to the project file on the hard drive Get From Project loads values from the project file into the panel but does ...

Page 66: ...ers can also select a triangular motion profile or their own user defined profile It is best to start testing with a small move tune the axis with a basic move and then tune to a move typical for the application Users can execute the move once by clicking Single Run or multiple times by clicking Repeat Run This provides the ability to change tuning gains while doing the same move over and over to ...

Page 67: ...very large data samples However PMM does not permit sampling faster than 20 ms with this option to avoid taxing network and processor resources on the controller and the user s PC Onboard sampling means that the controller will allocate a memory buffer for the data it needs to take in advance When the user clicks Single Run or Repeat Run the controller will store the data it acquires in the buffer...

Page 68: ...PMM is connected to the controller whether this axis is enabled and whether a Kill All Motion Request is active for this axis A Kill All Motion Request prevents all motion on an axis Users can click Enable Drive to enable this axis Kill All Motion issues a Kill All Motion Request to the current axis Clear All Kills removes the Kill All Motion Request to allow motion again The Scope The scope is th...

Page 69: ...PARKER MOTION MANAGER ACR Programmer s Guide 69 ...

Page 70: ...subpanel is discussed in detail here Communications The Communications subpanel has a single indicator that shows whether PMM is connected to the ACR PMM must be connected for most of the tools on this screen to function Drive This subpanel has an indicator to show whether the drive is enabled and another to indicate whether it is faulted It has buttons to enable or disable the drive Click Drive R...

Page 71: ...an There are also several useful indicators on this panel Jog Lockout When this bit is on jog motion is inhibited Jog Limit Check On when the jog limits JLIM command are in effect Jog Active On when the axis is jogging Jogging Positive On when the axis is jogging in the positive direction Jogging Negative On when the axis is jogging in the negative direction Jog At Speed On when the Jog Profiler h...

Page 72: ...ntrols for homing the axis Click Home Positive to start searching for home in the positive direction or click Home Negative to start searching for home in the negative direction This panel has several indicators Homing Not Active Indicates whether the axis is homing Not Homing Positive Indicates whether the axis is homing with an initial positive direction Not Homing Negative Indicates whether the...

Page 73: ...icking OK Copy the code into a program for easy homing setup Hardware Limits The Hardware Limits subpanel has indicators to display whether either of the limits have been tripped Click Setup to make adjustments to the limit switch configuration Most of the options in this dialog should be familiar since they are also found on the Fault screen of the Configuration Wizard Click Send to apply the new...

Page 74: ... axis Click Setup to make changes The options presented in this dialog work the same way as the ones on the Fault screen in the Configuration Wizard Click Send to apply the new settings to the controller To make the changes permanent check the Save changes to Configuration box and click OK This will apply the changes to the project configuration ...

Page 75: ...resented in this dialog work the same way as the ones on the Fault screen in the Configuration Wizard Click Send to apply the new settings to the controller To make the changes permanent check the Save changes to Configuration box and click OK This will apply the changes to the project configuration LED Legend This subpanel just displays four sample LEDs with information about what their color cod...

Page 76: ... new OS To do this click Return to Factory Settings same as issuing the FLASH RES command This will also set the IP address back to the factory default For the ACR7000 this is 192 168 100 1 For the IPA the default address is 192 168 100 x where x is determined by the rotary switches NOTE Make sure the program is backed up and saved on a PC prior to clicking Return to Factory Settings All applicati...

Page 77: ...ntroller or disconnecting during an OS download can brick the unit and leave it in an unbootable state If this happens the unit may need to be returned to the factory for repair Another dialog will then indicate the status of the download and confirm success After the OS update is complete make sure to download the application to the controller again ...

Page 78: ... convenient The available status panels are Motion Status Panel ACR7000 family Drive Status Panel ACR7xT and ACR7xV only Common Status Panel IPA only Numeric Status Bit Status EtherNet IP Status Panel Servo Loop Status Motion Status Panel ACR7000 Family The Motion Status Panel available for all ACR7000 models displays basic status and fault data about all the axes at once It also shows basic statu...

Page 79: ... the following status codes Idle Program is not running or has stopped running This is common if the program has not been commanded to run in which case the line number should be zero In the case of a program crash the line number will show the line on which the crash occurred Running Program is executing code The line number should be constantly changing This is normal when the RUN command is giv...

Page 80: ...t to each master Click Clear All Kills to reverse that action and ready the system for motion again Online Status This subpanel just indicates whether PMM is currently connected to the controller Motion Enable Input This subpanel indicates whether the Motion Enable Input is closed If this input is open none of the drives will be permitted to enable Drive Status Panel ACR7xV and ACR7xT The Drive St...

Page 81: ...trol Status subpanel shows information also available on the Motion Status Panel Anything not related to fault conditions has been omitted These controller level faults are not specific to any particular model of ACR and are also found on the IPA and older ACR9000 series ...

Page 82: ... present and will need to be addressed by a hardware or configuration change e g reconnect encoder cable increase available power etc The Drive Faults subpanel for stepper axes is more limited as there are fewer possible fault causes Controller Information The Controller Information subpanel available for the ACR7xV shows the Current Operating Time and Current Power On Time The Current Operating T...

Page 83: ...homing move succeeds However it will turn off again as soon as a new move is commanded The Analog Input fields show the ADC input values after the offset and gain are applied The default range is 10 VDC but this can be changed using the ADC OFFSET and ADC GAIN commands Actual Position Commanded Position and Following Error are shown in user units Commanded Velocity is shown in user units s The Vel...

Page 84: ...terface that relies on text descriptions rather than labeled indicators If there are no problems both panels will display Ready in green text When a fault occurs a red message will appear in the appropriate subpanel Controller level faults like excess position error or hard limit trips are displayed under Control Status Hardware related faults like undervoltage or feedback faults are displayed und...

Page 85: ...hould be constantly changing This is normal when the RUN command is given to a program Programs can also go int run mode if they use the PBOOT command or if their Run Request flag has been set Dwelling The program has encountered a DWL command and will stay on that line until the programmed dwell time has elapsed Inhibited The program has stopped on a line and will stay there until a certain condi...

Page 86: ... and Axis 1 Current Position is P12544 This pattern can be seen with other resources like encoders but the offset is not always 256 For more information on specific parameters click Help Parker Motion Manager User s Guide Click the Search tab and enter the parameter number Numeric Status has hundreds of system parameters such as the program line numbers ...

Page 87: ...n all products For example the ACR7xC controller does not have integrated steppers and thus the stepper drive parameters would all be 0 User parameters are now in the Numeric Status This includes User Doubles P0 P4095 User Non Volatile Longs P38912 P39167 and User Non Volatile Floats P39168 P39423 New for PMM ...

Page 88: ...nteger containing the Axis 0 Primary Axis Flags Bit 768 is bit 0 of P4120 s 32 bits Bit 799 is bit 31 of P4120 Axis bit indices are separated by 32 so if the Not In Position bit for Axis 0 is bit 768 the Not In Position bit for Axis 1 is bit 800 Users can quickly add specific bits to their Defines list or Watch Lists by right clicking from this panel Similar to parameters if needing a better descr...

Page 89: ...nging data Note that this does not mean the network is free of errors It is possible for the network to start even if not all of the nodes are found Failure Status This subpanel displays indicators that address specific failure conditions Network Start Failed Errors occurred during startup that prevented operation I O Node Failure Network failure occurred on a specific I O node Peer Node Failure N...

Page 90: ...n Seconds Time elapsed since network was started Operation Error Code Descriptions Value Description Value Description 0 No errors 11 I O Node Online but no response 1 Invalid user supplied I O Node count 12 I O Node error response 2 Invalid user supplied Peer Node count 13 UCMM data range 3 Error in user supplied external node data 14 Internal error in EtherNet IP cycle start 4 Invalid IP address...

Page 91: ... no error Operation Error Description Text description of Operation Error Code Node Failure Count Number of dropped packets recorded since the node connected The bottom table displays the status of the peer nodes Node Status Code Typical codes are 0 not found 1 found and 2 found then lost Node Status Description Text description reflecting the Node Status Code Operational Duration Seconds since th...

Page 92: ...ition is based on the servo feedback typically a rotary or linear encoder Following error is generated by subtracting the Secondary Setpoint from Actual Position This is provided to the servo loop which processes the error and multiplies it by gains to generate the Proportional Term Integral Term and Derivative Term The Velocity Term and Acceleration Term are feed forward values The Summation Poin...

Page 93: ... represent the torque command in volts Channel 4 shows Secondary Setpoint in purple Units are encoder counts In addition to controls specific to each channel there is a global setting for all position related parameters to be graphed in encoder counts default or in user units Each channel has several controls The top field displays the parameter being graphed This can be changed to any parameter d...

Page 94: ... select a specific bit or bits to watch in the scope Timebase The Timebase panel controls the graph s time horizontal axis It consists of several tools The time division indicator shows the length of time represented by one division on the horizontal axis This can be changed using the up and down buttons to its left The slider beneath the time division indicator can be used to scroll data in the g...

Page 95: ...den on the controller meaning the graph can store very large data samples However PMM does not permit sampling faster than 20 ms with this option to avoid taxing network and processor resources on the controller and the user s PC Onboard sampling means that the controller will allocate a memory buffer for the data it needs to take in advance When the user clicks Single or Run the controller will s...

Page 96: ...ds on the controller in use For ACR7000 controllers the default servo period is 500 µs For the IPA it is 250 µs The other buttons have simpler functions and are explained below Clicking Display Data displays all of the captured data in a textual format which makes it easy to copy the data to other applications like Microsoft Excel Clicking Export Data directly saves the data to a text or CSV file ...

Page 97: ...ng during the test It is common to graph parameters like Following Error Secondary Setpoint Actual Torque and other control loop parameters Data channels display their current values when sweeping the cursor over the scope This makes it easy to correlate specific channel values with specific times One of the biggest new features to the Servo Tuner in PMM is Auto Scale on by default which makes the...

Page 98: ...onvenience there are two of them This allows users to monitor or troubleshoot two entirely different issues without needing to constantly reconfigure their scope The Oscilloscope is very similar to the Servo Tuner and has access to all of the tools mentioned previously It can be considered the basic form of all the scopes ...

Page 99: ...ard sampling is not an option The Strip Chart only uses PC based sampling The scope for the Strip Chart comes with an extra slider at the bottom This slider can be used to select a subset of the total elapsed time for viewing If the user changes the position of the slider the scope will pause at the desired section but will keep collecting data Clicking Resume will put the Strip Chart back in scro...

Page 100: ...It is designed to compare two signals that have a relationship like the positions of an X and a Y axis The XY Plot only has two channels instead of the usual four Each channel maps one parameter to the horizontal axis top parameter and another to the vertical axis bottom parameter The rest of the tools work normally ...

Page 101: ...ACR BASICS ACR Programmer s Guide 101 CHAPTER 2 ACR Basics ...

Page 102: ...a program Note most commands are on their own lines but ACC DEC STP and VEL are all used by the motion calculator simultaneously and thus can be on one line saving vertical programming space The AcroBASIC programming language uses a parent child approach A parent can have child statements A child statement is considered a sub statement of the parent Parent Command DRIVE ON X Child Command You can ...

Page 103: ...ler strips comments on downloading the program This can help minimize program space within the controller This originated from memory limitation of controllers many years ago and is not a limitation for new controllers such as the ACR7000 or IPA controllers Apostrophe comments must appear on their own line Remarks cannot be on PROGRAM or ENDP lines or on program labels No commands can be at the en...

Page 104: ...two labels STARTUP and MAIN The program first does a GOSUB subroutine to _STARTUP where it enables the X axis motor and resets the position With the RETURN it goes back from where it was called and continues to line of ACC 10 DEC 10 It then enters a section of code with label of _MAIN and with the GOTO MAIN would repeatedly move the motor back and forth between position of 10 and 0 The Halt Progra...

Page 105: ...is 0 is the X axis and Axis 1 is the Y axis unless otherwise specified Axis names aliases are only recognized within the program to which their master is attached PMM s Configuration Wizard allows users to assign axis names on Axes within the Alias column This adds the alias to the axis in the System Code with the ATTACH command Or programmers could also assign an axis name to an axis through the ...

Page 106: ...ached To see a controller s attachments type ATTACH in PMM s Terminal Emulator and press Enter Here is an example for an ACR74T four axis stepper These attachments are already set by PMM s Configuration Wizard after download As the sample programs command motion with X the sample programs must be used within Program 0 Syntax errors occur within other programs as X is not recognized outside of Prog...

Page 107: ...ACR BASICS ACR Programmer s Guide 107 Stopping Motion When running and testing a program users should be ready to kill motion there is a button on the Motion Status Panel for this purpose ...

Page 108: ...ves Kill All Motion button in Motion Status panel shown above sends Ctrl X Kill All Motion Disable All Drives button in Jog Home Limits sends Ctrl Z Kill All Motion button in Servo Tuner sends Ctrl X Disabling the drives is the same as sending the DRIVE OFF command Motion can be stopped programmatically from an AcroBASIC program external HMI or PLC by setting the Kill All Motion Request KAMR flag ...

Page 109: ...To restart the controller click the Clear All Kills before running the program or starting motion again NOTE Enabling drives using DRIVE ON command will clear the Kill All Motion Request KAMR and Kill All Moves bits if the drive is not currently enabled We will discuss more about stopping in Stopping Moves and Motion PMM s Toolbar allows the user to start and halt programs This presumes the contro...

Page 110: ...le we can use INH and IHPOS to wait until X is past 1 unit to turn on an output After reaching a position of 10 it turns the output off and returns to 0 PROGRAM GOSUB STARTUP REM Go subroutine to STARTUP label ACC 10 DEC 10 STP 10 VEL 1 REM Set move parameters _MAIN X10 REM Move to 10 on X axis IHPOS P12295 1 P12375 0 REM Wait until X axis is past 1 unit SET 32 REM Turn on output bit32 INH 516 AT ...

Page 111: ...ving NOTE Do not use INH or DWL in programs 8 15 If you have multiple non motion programs an inhibit or dwell in one non motion program affects all non motion programs With a timeout the condition would need to be checked to see if the program continued because the condition was true or because the timeout elapsed From the program above DRIVE ON X REM Enable the X axis motor INH 8465 3 REM Wait ti...

Page 112: ...ws you to run one set of code if the condition is true and another set of code if the condition is false The IF ELSE statement must end with ENDIF When using an IF ELSE statement observe the following You can nest GOSUB statements in an IF ELSE statement The GOSUB provides a return into the IF ELSE statement Do not nest GOTO statements in IF ELSE statements The GOTO statement exits the IF ELSE sta...

Page 113: ...dition you can omit the ELSE condition When the IF and ELSE IF conditions test false statement execution after the ENDIF continues Think of it as creating a series of IF THEN statements IF P0 0 X 25 ELSE IF P0 0 X0 ELSE X 10 ENDIF GOSUB RETURN The GOSUB branches to a subroutine and returns when complete You can use GOSUB and RETURN anywhere in a program but both must be in the same program A proce...

Page 114: ...uns on Auto mode or Jog mode based on inputs PROGRAM GOSUB STARTUP REM Go subroutine to STARTUP label ACC 10 DEC 10 STP 10 VEL 1 REM Set move parameters _MAIN AUTO MODE IF BIT 0 REM Input0 Auto Switch on X10 REM Move to 10 on X axis SET 32 REM Turn on output bit32 DWL 0 5 REM Dwell 0 5 sec CLR 32 REM Turn off output bit32 X0 REM Return to start on X axis P0 P0 1 REM increment a part counter JOG MO...

Page 115: ...number of times the FOR NEXT loop is a good choice It contains a counter to which you assign starting and ending values You also assign a STEP value positive direction only the value by which the counter increments When the FOR NEXT loop executes the first time the end value and the counter are compared If the current value is past the end value the FOR NEXT loop ends and the statement immediately...

Page 116: ...rameters and Variables The ACR uses parameters registers and flags bits to store information and define the behavior of the controller Users have almost unlimited access to the parameters and flags for use in programs or a user interface Most applications only need to utilize a small set of the thousands of registers available The more complex the application the more parameters are likely to be u...

Page 117: ...arameters are available as user defined parameters Parameter Range Data type Retained Notes ACR7xx0 IPA P0 P4095 64 Bit Float Flash Flash Must be dimensioned prior to use Dimensioning included in PMM Configuration Wizard FLASH IMAGE to save P4100 P4103 32 Bit Long No No Each parameter contains 32 user flags BIT128 255 P4156 P4159 32 Bit Long No No Each parameter contains 32 user flags BIT1920 2047...

Page 118: ...current position for Axis 0 see table P12288 P14199 Axis Parameters and input 24 see table Bit0 Bit31 Opto Isolated Inputs P12288 BIT24 Setting Binary Bits You can use the SET command or fix the bit value equal to 1 The following demonstrates how to set at bit All methods are valid SET 32 Bit32 1 SET Bit32 SET BIT 32 SET is always used with a bit Thus the BIT in the line is redundant and optional ...

Page 119: ... stored in parameters and bits Parameter 6144 provides the current position of Encoder 0 bit 24 provides the current state of input 24 PRINT P6144 PRINT Bit24 P6144 Bit24 Note a PRINT statement can be used for parameters bits or strings and thus querying a bit status will require BIT in the line A Word on Aliases Parameters and bits can use aliases You only need to assign the alias once and then c...

Page 120: ... To set the Feedhold Request bit issue the command SET 520 You can resume the program by setting Cycle Start Request bit or sending the RESUME command The Cycle Start Request bit starts the axes using the acceleration value To set the Cycle Start bit issue the command SET 521 While the program is in a feedhold you can check the encoder position of each axis To view the axis X encoder position issu...

Page 121: ... a comma or a semicolon produces a carriage return and linefeed combination Defines From examples up to this point AcroBASIC extensively uses bits parameters and variables These bits and parameters can be for controller status or the programmer s user data in programs Alternative names called defines can be assigned to parameters bits constants and variables to make program code more readable Defi...

Page 122: ... MODE IF bAutoRun REM Input0 Auto Switch on X10 REM Move to 10 on X axis SET bExtending REM Turn on output bit32 DWL 0 5 REM Dwell 0 5 sec CLR bExtending REM Turn off output bit 32 X0 REM Return to start on X axis bCounter bCounter 1 REM Increment a part counter JOG MODE ELSE IF bJogRight REM If Jog switch JOG FWD X ELSE IF bJogLeft REM If Jog switch JOG REV X ELSE JOG OFF X REM If Auto and Jog ar...

Page 123: ... program After a download the terminal will be at the P15 prompt You could start Program 0 from here with RUN PROG0 This could also be done from the SYS prompt or any other program prompt such as PROG1 P01 in the terminal Running a Program at Power Up You can set a specific program to automatically start after powering up or rebooting the controller In the program editor enter the PBOOT command as...

Page 124: ...PAUSE ALL or RESUME ALL To control all programs use the ALL argument in a command Restart Controller To test starting the controller users could cycle power on the controller Note this will cause the computer to lose connection to the controller temporarily The REBOOT command is the same as cycling power To restart a controller issue the REBOOT command Running Startup Programs You can run all star...

Page 125: ...own expressions The order of operations with such operators begins with the deepest nested parentheses Parentheses and Operational Order Using parentheses you can group operations in an expression to change the order in which they are performed For example the expression 4 6 2 Provides the answer 7 and not 5 because division performs before addition When a mathematical expression contains operator...

Page 126: ...ollowing IF statement proves true the message OK prints IF P0 1234 THEN PRINT OK Example 3 The following concatenates strings V1 and V2 and sets string V0 equal to the result V0 V1 V2 Example 4 The following program generates a random number from 0 to 999 As the program loops it counts each loop When the number equals 123 the program exits the loop and prints the count PROGRAM DIM LV 2 REM dimensi...

Page 127: ...cept supply model code samples or to show multiple ways to employ the commands The example code may include the terminal prompt or configuration code if it is necessary for clarity Example code is complete only as far as conveying information about the discussion and configuration and other information may need to be added in order for the code to be of use in an actual application NOTE In ACR Ser...

Page 128: ...the FPGAs output the drive control signals for external drives The SOM processor is a pre emptive multi tasker Users can use up to 15 programs 8 high priority tasks Motion programs Prog 0 Prog 7 and 7 low priority tasks Non Motion programs Prog 8 Prog 14 On the ACR7xV the individual axis processors run a 500 µs default position loop and 31 25 µs current loop On the ACR7xC the position loop for all...

Page 129: ...ACR BASICS ACR Programmer s Guide 129 ACR7xV ACR7xT IPA Hardware Architecture ACR7xC Hardware Architecture ...

Page 130: ...he Microsoft Component Object Model COM and allows for reading writing bits and parameters initiating motion and uploading downloading programs It is a wrapper for the Binary Host Interface For further details see ComACRServer6 User s Guide For PC based applications for OEM machinery using a non Windows PC for control or for users wanting faster communications the Binary Host Interface can be used...

Page 131: ...aneously be a scanner Ethernet IP Peer to Peer The ACR7000 and IPA s EtherNet IP implementation can be a scanner for Peer to Peer communications with up to four other ACR7000 or IPA controllers Though not for expansion of interpolated motion this can be used to coordinate between controllers using only an Ethernet cable Users can have systematic exchange up to 128 longs or floats in both direction...

Page 132: ... EtherNet IP Architecture Examples PC control via TCP IP and two ACRs with Peer to Peer ACR standalone Peer to Peer up to 4 PLC control via EtherNet IP with two ACRs Peer to Peer ACR cannot be an EtherNet IP slave to both a PLC and another ACR ...

Page 133: ...nd at the system level frees the memory allocated to all programs You can only issue some parent commands in conjunction with a daughter statement For example the DRIVE command has the ON OFF and RES daughter statements Therefore you can issue the DRIVE ON axis DRIVE OFF axis and DRIVE RES axis commands but not DRIVE by itself Description of Format 1 Mnemonic Code The ASCII command 2 Name A short ...

Page 134: ...control spacing and line feeds To understand the separator s specific use in a command refer to the command s format and description Slash mark signifies an incremental move in select commands Quotes arguments within the quotes must appear within quotes in your code Number sign device arguments following number signs must include the number sign in your code Ellipsis arguments can be given for mul...

Page 135: ...nd 1 IPB X 0 05 Y 3 1 Or IPB AXIS0 0 05 AXIS1 3 1 Notice that the two values for axis Y are given inside parentheses and separated by a comma as shown in the format of the command Note the X and Y aliases are only valid within the program to which the axes are attached see ATTACH Using AXIS0 or AXIS1 is valid in any program Example 4 HALT PROGx ALL The vertical bar indicates a choice between argum...

Page 136: ...sed within commands but as it is a command within a command it needs to be within parentheses This is a great way to condense program code JOG HOME X1 REM Start homing X positive REM Infinite WHILE statement while X is trying to HOME WHILE NOT BIT 16134 AND NOT BIT 16135 WEND REM Prints Information regarding X Axis homing IF BIT 16134 THEN PRINT X HOMING SUCCESSFUL IF BIT 16135 THEN PRINT X HOMING...

Page 137: ...and PMM online help gives full syntax and explanation of these commands with example code The more common commands are covered within this Programmer s Guide Many of the commands are settings and are part of the System Code generated by PMM s Configuration Wizard See Configuration Axis Limits Command Description ALM Set stroke limit A BLM Set stroke limit B EXC Set excess error band HLBIT Set hard...

Page 138: ...data from a device OPEN Open a device PRINT Send data to a device TALK TO Talk to device Drive Control Command Description DRIVE Drive report back Feedback Control Command Description HSINT High speed interrupt INTCAP Encoder capture MSEEK Marker seek operation MULT Set encoder multipliers NORM Normalize current position OOP High speed output PPU Set axis pulse unit ratio REN Match position with e...

Page 139: ...T Fast status setup LIMIT Frequency limiter MASTER Direct master access PLS Programmable limit switch RATCH Software ratchet SAMP Data sampling control Interpolation Command Description CIRCCW Counter clockwise circular move CIRCW Clockwise circular move INT Interruptible move INVK Inverse kinematics MOV Define a linear move NURB NURBs interpolation mode SINE Sinusoidal move SPLINE Spline interpol...

Page 140: ... bit high or low MASK Safe bit masking SET Set a bit flag TRG Start move on trigger Memory Control Command Description CLEAR Clear memory allocation DIM Allocate memory MEM Display memory allocation Non Volatile Command Description ELOAD Load system parameters ERASE Clear the EEPROM ESAVE Save system parameters FIRMWARE Firmware upgrade backup FLASH Create user image in flash PARTNUMBER Displays c...

Page 141: ...e DEFINE Define variable DETACH Clear attachments DIAG Display system diagnostics ECHO Character echo control HELP Display command list IP IP address MODE Binary data formatting PASSWORD Block uploading programs PERIOD Set base system timer period PROG Switch to a program prompt REBOOT Reboot controller STREAM Display stream name SYS Return to system prompt VER Display firmware version Program Con...

Page 142: ... mode RUN Run a stored program STEP Step in block mode TROFF Turn off trace mode TRON Turn on trace mode Program Flow Command Description BREAK Exit a program loop END End of program execution ENDP End program without line numbers FOR TO STEP NEXT Relative program path shift GOSUB Branch to a subroutine GOTO Branch to a new line number IF ELSE IF ELSE ENDIF Conditional execution IF THEN Conditiona...

Page 143: ...ZU Dead zone outer band FBVEL Set feedback velocity FFACC Set feedforward acceleration FFVC Feedforward velocity cutoff region FFVEL Set feedforward velocity FLT Digital filter move IDELAY Set integral time out delay IGAIN Set integral gain ILIMIT Set integral anti windup limit KVF PV loop feedforward gain KVI PV loop integral gain KVP PV loop proportional gain LOPASS Setup lopass filter NOTCH Set...

Page 144: ...nsformation Command Description FLZ Relative program path shift OFFSET Absolute program path shift ROTATE Rotate a programmed path SCALE Scale a programmed path Velocity Profile Command Description ACC Set acceleration ramp DEC Set deceleration ramp F Set velocity in units minute FOV Set feedrate override FVEL Set final velocity IVEL Set initial velocity JRK Set jerk parameter S curve LOOK Lookahe...

Page 145: ...a program From a terminal sending the PBOOT command starts all PBOOT programs Every program can use PBOOT Example The following program runs on power up flashing output 32 PROGRAM PBOOT REM PBOOT must appear as first line REM Beginning of loop _LOOP1 BIT 32 NOT BIT 32 DWL 0 25 GOTO LOOP1 ENDP Resetting the Controller When you reset the controller it shuts down communications turns off outputs and ...

Page 146: ...to Factory Default To erase the controller s programs and settings and reset back to factory default 1 Open Parker Motion Manager 2 Connect to the controller 3 Open the Terminal Emulator 4 Type FLASH RES and press Enter Or from PMM s OS Update screen click Return to Factory Settings Before starting a new project on any ACR controller ensure the controller is set to factory default settings and up ...

Page 147: ...r ACR7xC The Configuration Wizard is slightly different for each showing stepper motors for the ACR7xT servo motors for the ACR7xV and asking for the drive info for the controller PMM generates the system code when Finish is selected at the end of the Configuration Wizard The project is also saved NOTE The wizard does not collect data in the same order in which code is written What is Configuratio...

Page 148: ...000 DIM PROG13 1000 DIM PROG14 200000 DIM PROG15 100000 DIM P 4096 DIM DEF 100 Then begins axis specific configuration The axis feedback and signal output information comes from the Axes and Feedback dialogs The PPU pulses per programming unit is computed from data provided through the Feedback and Scaling dialogs and units selected The excess error band data comes from the Fault dialogs PM SCALE ...

Page 149: ...144 REM Positive EOT Limit Level Invert SET BIT16145 REM Negative EOT Limit Level Invert CLR BIT16146 REM Home Limit Level Invert SET BIT16148 REM Positive EOT Limit Enable SET BIT16149 REM Negative EOT Limit Enable AXIS0 SLM 10 0 AXIS0 SLDEC 500 000000 SET BIT16150 REM Positive Soft Limit Enable SET BIT16151 REM Negative Soft Limit Enable The ACR7xT has step motor parameters and are set based on ...

Page 150: ... SET BIT16177 REM Negative EOT Limit Level Invert CLR BIT16178 REM Home Limit Level Invert SET BIT16180 REM Positive EOT Limit Enable SET BIT16181 REM Negative EOT Limit Enable AXIS1 SLM 10 0 AXIS1 SLDEC 500 000000 SET BIT16182 REM Positive Soft Limit Enable SET BIT16183 REM Negative Soft Limit Enable REM Axis Stepper Motor Settings P7954 2 38 REM Max amps peak user P7962 256 REM Micro Steps Power...

Page 151: ...ration at end of move STP 10 REM the desired master velocity VEL 1 REM the desired acceleration versus time profile JRK 0 Resources Reserved for Generated Code When you click Finish the Configuration Wizard generates the System Code On download it is saved as XML in Program 15 This allows the Configuration Wizard to be populated when uploading No changes from the user need to be made NOTE Do not e...

Page 152: ...ACR BASICS 152 ACR Programmer s Guide Flash Memory The table below describes an overview of the Flash Memory for the ACR Controllers ...

Page 153: ...MAKING MOTION ACR Programmer s Guide 153 CHAPTER 3 Making Motion ...

Page 154: ...inear using an external source Regardless of the type of motion or number of axes used the controller must always be set up for coordinated motion This may be done by using the Configuration Wizard or by writing custom configuration code and including master slave and axis attachment statements The attachment statements make the basic connections to a coordinated motion profiler For more informati...

Page 155: ...nits in an identical manner as Example 1 X10 Example 3 If motion is commanded for multiple axes on a single line the controller treats it as coordinated motion The X and Y axes complete their respective moves at the exact same time X20 Y 30 Incremental Motion Incremental motion is commanded relative to the current position To move an incremental distance a distance relative to the current position...

Page 156: ... a combination of the two All three examples end at the absolute position of 400 units Example Absolute Motion The X axis is commanded to the following absolute positions X0 X100 X200 X300 X400 Example Incremental Motion The X axis is commanded to the following relative positions X0 X 400 X 500 X 200 X 100 Example Absolute and Relative The X axis is commanded to the following absolute and incremen...

Page 157: ...and takes effect even if the axis or axes are moving Use the FOV set feedrate override command to set a floating point scaling factor to adjust the master velocity If a move is in progress the master uses the established acceleration or deceleration ramp to adjust to the new velocity NOTE The FOV command does not change the master velocity permanently and the change is not saved To make a permanen...

Page 158: ...ration The DEC set deceleration ramp command sets the deceleration used to ramp from higher to lower speeds The value is in units per second2 The deceleration ramp is only used when the stop ramp is zero Use the DEC ramp to blend moves Stop Use the STP set stop ramp command to set the master deceleration ramp used at the end of the next move The value is in units per second2 When the stop ramp is ...

Page 159: ...ings the value to 4000 Then PPU X4000 sets the programming units to revolutions 4000 pulses rev for the rest of the program The X axis moves 200 revolutions at 20 revs second using 10 revs second ramps MULT X4 PPU X4000 ACC 10 DEC 10 STP 10 VEL 20 MOV X200 Interaction Between Motion Profilers Any combination of motion profilers can be used to carry out motion for an application As stated previousl...

Page 160: ...ne diamond and uses the Jog Profiler to offset the coordinates for the remaining diamonds The axes are attached to a Coordinated Moves Profiler see Master Slave Attachments The cutting tool starts at coordinates 0 0 in the lower left quadrant of the stock Subsequent diamonds are cut in sequence from upper left upper right and lower right quadrants The first shape is cut based on the following move...

Page 161: ...culates its own commanded position which is sent to a summation point The coordinated move jog gear and cam data is combined for each axis to create a setpoint The Coordinated Moves Profiler always starts and ends at coordinates 0 0 With the first shape there are no JOG GEAR or CAM commands so the setpoint for the X and Y axes is 0 0 For the second shape the jog statement tells the Jog Profiler to...

Page 162: ...mps and a velocity You can further control coordinated motion using additional velocity profile commands Axis motion with gear cam or jog offsets are controlled solely by their associated commands for example CAM OFFSET CAM SCALE GEAR ACC GEAR RATIO JOG DEC or JOG JRK NOTE To check the setting of a specific motion profile command enter the command without any arguments NOTE To disable a command se...

Page 163: ...leted The controller calculates a new master motion profile to complete the move in the specified time The new motion profile values for acceleration deceleration stop ramps and velocity are no greater than the user specified values VECDEF define automatic vector controls how the Coordinated Moves Profiler calculates the master move vector The VECDEF command defines the weight each axis receives i...

Page 164: ... the load or mechanics attached REN match position with encoder sets the commanded position equal to the actual position for a given axis thus removing the following error RES reset or preload encoders sets the commanded position and actual encoder position to zero for a given axis It also allows the user to preload an axis with a position REN Details The REN command copies the actual position fro...

Page 165: ... positions into the Coordinated Moves Profiler and Actual Position registers example RES X10 See below for a diagram of the profiler and summation registers for the command RES X10 The values of the Coordinated Moves Profiler Primary and Secondary Setpoints and Actual Position registers have been changed to 10 The remaining profilers have been changed to zero ...

Page 166: ...ontroller recognizes the axis name and a value as commanded motion such as X500 Multiple axes can be commanded in a single code statement such as X500 Y100 the motion is coordinated No matter what the designed application is the controller must first be configured for coordinated linear interpolated motion This does not limit the user from simultaneously using the other motion profilers jog gear o...

Page 167: ...ame as the master NOTE The Coordinated Moves Profiler typically uses the clock as its timebase Example 1 Two axes are attached to the same master and instructed to move to absolute positions axis X to 25 millimeters and axis Y to 15 millimeters Both axes start accelerate decelerate and stop together ACC 750 DEC 750 VEL 75 STP 750 X25 Y15 Example 2 Two axes are attached to the same master and the p...

Page 168: ...ntroller is first configured for coordinated motion This does not exclude simultaneously using the other motion profilers The Jog Profiler looks to the Coordinated Moves Profiler for its configuration data master slave and axis attachment statements For more information about making attachments see Attachments The Jog Profiler computes motion based on axis target positions and on the motion profil...

Page 169: ... Home Commissioning dialog The dialog only allows the user to test the setup of an axis it does not produce jogging or homing code Example 1 Two axes are set to different acceleration deceleration and velocities and are moved the same distance JOG ACC X1000 Y500 JOG DEC X1000 Y500 JOG VEL X25 Y50 JOG INC X10 Y10 The figure below looks at the commanded motion of the X axis In the upper graph veloci...

Page 170: ...between points P1 and P2 is where the X axis movement is a constant velocity The next figure looks at the movement for the Y axis characterized by more gradual slopes for acceleration and deceleration values of 500 in the velocity motion profile as compared to the X axis values of 1000 Y Axis Velocity and Position Profiles Again the straight line between points P1 and P2 on the position motion pro...

Page 171: ... VEL X25 Y50 Comparing the first curve after t0 for the axes show that a higher acceleration value presents as a more gradual curve JOG ACC X1000 Y500 X and Y Position Motion Profiles Example 2 The JOG VEL value is changed while a single axis is in motion on the fly OTF JOG ACC X20 JOG DEC X25 JOG VEL X10 JOG INC X10 DWL 1 0 JOG VEL X5 At one second t0 1 0 s the axis is commanded to decrease speed...

Page 172: ...til the Jog Active Bit bit 792 is off indicating that Axis X has finished its move after which time the Y axis is commanded to move to its incremental position The figure below shows the velocity profile of this example JOG ACC X1000 Y500 JOG DEC X1000 Y500 JOG VEL X25 Y50 JOG INC X10 INH 792 JOG INC Y10 Velocity Profile of Sequential Jog Moves JOG VEL Details The next figure shows the bit profile...

Page 173: ...is velocity profile and its associated commands JOG ABS jog to absolute position uses the current jog settings to jog an axis to an absolute jog offset JOG ACC set jog acceleration sets the programmed jog acceleration for an axis JOG DEC set jog deceleration sets the programmed jog deceleration for an axis JOG FWD jog axis forward initiates a ramp to the velocity programmed by the JOG VEL command ...

Page 174: ...rent position either clears or preloads the jog offset of a given axis and adds the difference to the current position JOG REV jog axis backward initiates a ramp in the negative direction to the velocity programmed with the JOG VEL command JOG SRC set external timebase specifies the timebase for jogging JOG VEL set jog velocity sets the programmed jog velocity for an axis JOG REN Details The JOG R...

Page 175: ...to current position clears the Jog Profiler offset of a given axis and adds the difference to the Coordinated Moves Profiler example JOG RES X It can also preload the Jog Profiler offset and again adjusts the Coordinated Moves Profiler to make up the difference example JOG RES X2 In either case the Gear and Cam profilers and the Primary and Secondary setpoints do not change The drawing below illus...

Page 176: ... Jog Profiler JOG RES X2 Gear Profiler The Gear Profiler controls motion for axes needing to match their motion output to some form of input The input source is usually external such as an electronic gearbox trackball follower axis or changes of ratio related to position In electronic gearing pulses are fed from a selected source into the gear offset of a slave axis These ...

Page 177: ...U X 4000 REM Master is 4000 pulses per rev GEAR RATIO X 1 5 REM Set gear ratio at 1 5 of master GEAR ON X REM Turn electronic gearing on No external encoder wired to the controller Use the global clock P6916 0 REM Reset Global System Clock to 0 GEAR SRC X P6916 REM Tie slave gearbox to Global System Clock GEAR PPU X1000 REM Master is 1000 counts 1 second GEAR RATIO X 25 REM Set gear ratio at 1 4 0...

Page 178: ...lacement for a mechanical cam The Cam Profiler controls motion for axes needing precise motion It uses an array of target points in relation to an externally sourced timebase By breaking the motion into discrete target points the cam arrives at the exact point needed The source can be the position of another axis an external encoder or any parameter within the controller The Cam Profiler provides ...

Page 179: ...e abruptly mistakenly written to from another program PLC or HMI or are subject to noise corruption CAM RES transfer cam offset this command either clears or preloads the cam offset of a given axis and adds the difference to the current position It also clears out any cam shift that may have been built up by an incremental cam Cam Example Program CAM X to Y Axis DRIVE ON X Y REM START CAM TABLE AR...

Page 180: ...ersed Outputs can be set to turn on position automatically with Programmable Limit Switch PLS See PLS sample Homing The homing operation is a sequence of moves that position an axis using the Home Limit inputs The goal of the homing operation is to return the load to a repeatable starting location When the homing operation successfully completes the controller sets the absolute position register t...

Page 181: ...llowing guidelines for all backup enabled profiles Search for the selected edge at the velocity set with the JOG VEL command set jog velocity Use the direction given in the JOG HOME command go home If the home input is already active start toward the selected edge On finding the selected edge decelerate Return to the selected edge at the velocity set with the JOG HOMVF command home final velocity ...

Page 182: ...tement uses Boolean logic to define homing REM conditions Bits 16134 and 16166 are the Found Home bits for axes WHILE NOT BIT 16134 AND NOT BIT 16135 OR NOT BIT 16166 AND NOT BIT 16167 WEND IF BIT 16166 THEN PRINT Y HOMING SUCCESSFUL IF BIT 16134 MSEEK X 1 0 INH 516 IF BIT 777 PRINT X HOMING SUCCESSFUL ENDIF ENDIF ENDP Homing Subroutines Typically the homing code is a subroutine in a program The J...

Page 183: ... clear Home Negative Final Direction bit index 26 is clear Positive Homing Homing Backup Enabled Figures C through F show the homing operation when the Home Backup Enable bit is set parameters 4600 4615 The seven steps below describe a sample homing operation as illustrated in Figure C Figures D through F show the homing operation for different values of the Home Negative Edge Select and Home Nega...

Page 184: ...ble bit index 24 is set Home Negative Edge Select bit index 25 is clear Home Negative Final Direction bit index 26 is clear Figure D Homing Profile Attributes JOG HOME X1 Home Backup Enable bit index 24 is set Home Negative Edge Select bit index 25 is set Home Negative Final Direction bit index 26 is clear Figure E Homing Profile Attributes JOG HOME X1 Home Backup Enable bit index 24 is set Home N...

Page 185: ...ive Final Direction bit index 26 is set Figure H Homing Profile Attributes JOG HOME X 1 Home Backup Enable bit index 24 is set Home Negative Edge Select bit index 25 is clear Home Negative Final Direction bit index 26 is set Figure I Homing Profile Attributes JOG HOME X 1 Home Backup Enable bit index 24 is set Home Negative Edge Select bit index 25 is set Home Negative Final Direction bit index 26...

Page 186: ...used for homing The inputs can be assigned or changed using the HLBIT command no corresponding parameter exists Use the HLBIT command to set the inputs for the positive hardware limit negative hardware limit and homing sensor input HLBIT X 0 1 2 For legacy systems or upgrading from ACR9000 When using HLBIT without the parentheses the number specifies the first input and the controller sets the nex...

Page 187: ...er Any motion command issued while this flag is set will result in an error message Associated Slave Kill Motion Request Active in the Terminal Emulator This is true if any axis assigned to the same master is commanded to move The user is responsible for clearing this flag Within a program to resume motion first clear the Kill All Motion Request flag for the axis and any other axis on the same Mas...

Page 188: ... and Axis 3 will continue to jog Flag Comparison The following table shows the bit numbers for Kill All Motion Request axis flags and the bit numbers for Kill All Moves master flags Kill All Motion Request Quaternary Axis Flags Axis Number 0 1 2 3 4 5 6 7 8467 8499 8531 8563 8595 8627 8659 8691 Axis Number 8 9 10 11 12 13 14 15 8723 8755 8787 8819 8851 8883 8915 8947 Kill All Moves Master Flags Ma...

Page 189: ...t bit for Axis 0 A green LED as circled in red below indicates that the flag is set All motion is stopped for this axis and all other axes on the same master Select Master Flags in the first pull down menu Primary Master Flags in the second pull down menu and Primary Master 0 Flags in the third pull down menu to display the Kill All Moves Request bit for Master 0 A green LED as circled in red belo...

Page 190: ...arts a continuous jog move on X axis P00 SET 8467 SET 8467 sets the KAMR for the X axis It would decelerate at the HLDEC rate P00 JOG FWD Y P00 Associated Slave Kill Motion Request is active Y axis motion is prevented due to the X axis KAMR flag being active P00 CLR 8467 CLR8499 P00 JOG FWD Y Y axis motion is now allowed NOTE Enabling drives using the DRIVE ON command will clear the Kill All Motio...

Page 191: ...Contoured Tiered Profiles Changes to jog velocity take effect immediately velocity moves JOG FWD or JOG REV Terminal Emulator Sample DRIVE ON X JOG VEL X5 JOG FWD X JOG VEL X8 JOG OFF X Or decelerating JOG VEL X5 JOG FWD X JOG VEL X3 JOG OFF X ...

Page 192: ...is in progress another Jog move command JOG INC or JOG ABS will cause the current move to abort and ramp to zero velocity before starting the next move Terminal Emulator Sample DRIVE ON X JOG VEL X5 JOG INC X20 JOG INC X3 Or DRIVE ON X JOG FWD X JOG INC X3 ...

Page 193: ...rns on The position is stored in the capture register The ACR7000 stepper has four capture registers one for each stepper axis The IPA has two one for its servo axis and another for its auxiliary encoder input ENC 1 The ACR7000 servo has one for each servo axis The ACR7000 controller has one for each axis and any of the first four can also be used for the auxiliary encoder input ENC 8 PMM s online...

Page 194: ...f there is no encoder open loop stepper the current position register value is used A Capture Complete Flag indicates when the capture is complete and then the Hardware Capture register will have the position information Example Encoder Reference Trigger REM Y axis use capture register 1 Mode0 rising edge of Encoder1 REM reference marker INTCAP Y0 REM arms capture for Y Axis JOG FWD Y REM initiate...

Page 195: ... all encoder positions at the next period for the controller and stores them within the software capture parameters P12293 for Axis 0 and so on Lock The LOCK command redirects one axis to follow the primary setpoint of a second axis This can be used to have multiple axes receive the same setpoint in the same servo cycle rather than following another axis one servo period behind LOCK is essential f...

Page 196: ...e slightly different To compensate for this error the user can turn on a feedback loop by setting some gain values for the Lock Feed Back Gain parameters of the locked axes Thus if one axis has a disturbance and corrects for the position error the locked axes will also correct The default value is zero which turns this feedback loop off With feedback gain Example P12376 3 5 REM Set lock gain axis ...

Page 197: ...esulting move will never be longer than half the rotary axis length Incremental moves are not affected by the rotary axis length This command only affects MOV absolute moves JOG moves are not affected Before enabling the ROTARY command it may be useful clear the JOG offset register by issuing the JOG RES command transferring the Jog Offset to the Coordinated Position register The NORM command can ...

Page 198: ...nputs would be good choices either with ENC1 syntax or the corresponding P parameter P6272 for ENC8 Ratchets are also available as a source Example SRC P6272 Servo Loop Fundamentals Each of the profilers contains a register with a value of the current offset These values are added together and the summation is called the Primary Setpoint PSP PSP Coordinated Moves Jog Gear Cam See below for a diagr...

Page 199: ...n PMM The Servo Loop Status panel shows the motion offsets primary and secondary setpoints servo gains and other values and how they result in the final position output In the Explorer click Status Panels then click Servo Loop Status Note that PMM s display will be slow due to the communications The update of the servo loops is the PERIOD of the controller see PERIOD in ACR Command Reference or PM...

Page 200: ...imary setpoint therefore the BSC SRC command is normally not required The primary setpoint is used so that the ballscrew offset is not fed into the calculation of the ballscrew index causing an unstable condition NOTE The primary setpoint is the summation of the coordinated position and the total cam gear and jog offsets The secondary setpoint is the summation of the primary setpoint and the total...

Page 201: ...rection factor These tests are conducted with the Point of Measurement POM in the center of the carriage 35 mm above the carriage surface Slope Correction Slope correction is simply removing the linear error of the table The graphs below show an example of a non slope corrected error Figure 2 plot and the same plot with slope correction Figure 3 As can be seen the absolute accuracy has been greatl...

Page 202: ...tive end of travel to zero LA0 1 50 REM Set last array value to inverse of slope correction value BSC DIM X1 REM Dimension one segment for correction values BSC SEG X 0 1450000 LA0 REM Segment 0 is 1450000 microns 1450 mm BSC SCALE X 0 001 REM Scale 1 PPU BSC ON X REM Activate ballscrew compensation BSC Using Error Data Points From Laser Report DIM LA 1 REM Dimensions one long array for correction...

Page 203: ... LA0 17 18 LA0 18 20 LA0 19 21 LA0 20 21 LA0 21 23 LA0 22 24 LA0 23 25 LA0 24 24 LA0 25 26 LA0 26 26 LA0 27 27 LA0 28 29 LA0 29 32 LA0 30 35 LA0 31 37 LA0 32 38 LA0 33 39 LA0 34 38 LA0 35 39 LA0 36 38 LA0 37 39 LA0 38 41 LA0 39 41 LA0 40 40 LA0 41 37 LA0 42 36 LA0 43 34 LA0 44 35 LA0 45 38 LA0 46 38 LA0 47 41 LA0 48 39 LA0 49 38 LA0 50 38 LA0 51 38 LA0 52 41 ...

Page 204: ...57 59 LA0 58 61 BSC DIM X1 REM Dimension one segment for correction values BSC SEG X 0 1450000 LA0 REM Segment 0 is 1450000 microns 1450 mm BSC SCALE X 0 001 REM Scale 1 PPU BSC ON X REM Activate ballscrew compensation Figure 4 Corrected error plot using laser table compensation points ...

Page 205: ...rom Cartesian coordinates to rotational coordinates to position the arm joints and cutting tool Once transformed the controller interpolates the target points to generate a motion path See the illustration below Programming the Inverse Kinematics Each application is different The algorithm for your application can consist of equations logical expressions and commands in the AcroBASIC language You ...

Page 206: ...AM _start X 0 2 REM Incremental move in Cartesian space GOTO start ENDP RUN PROG0 REM Run the program Note the following limitations with the ACR s inverse kinematics feature It only applies to master moves such as X4 Y 8 Jogging gearing and camming are unaffected Only the end point of the move is modified it is not guaranteed that the system will move along a desired path The inverse kinematics f...

Page 207: ...WRITING ACROBASIC PROGRAMS ACR Programmer s Guide 207 CHAPTER 4 Writing AcroBASIC Programs ...

Page 208: ...e motion program Program 0 has stopped running and handle the errors reset the drive and restart Program 0 Parameters and bits are global This makes it easier to use them across programs However be careful if two programs can write and change the value of the same parameter or bit If one program is using its value and the other program changes the value this can cause problems If the first program...

Page 209: ...cremental Jog Moves Subroutine Homing Subroutine Advanced Homing Homing for XYZ System Open Sample Teach Array Programmable Limit Switch EIP Scanner Wago 750 Joystick Capture Data Peer to Peer ACR7xT Status ACR7xT Home to Hard Stop Time Subroutine Add On Instructions AOIs for IPA Xpress HMI with ACR7000 Xpress HMI with IPA Note that these samples and others are available for download and use from ...

Page 210: ... ACC X 10 JOG DEC X 10 JOG VEL X 1 JOG ACC Y 10 JOG DEC Y 10 JOG VEL Y 2 GOSUB ENABLEDRIVE REM GO TO SUBROUTINE ENABLEDRIVE REM This will then go to _ENABLEDRIVE and run that subroutine until REM the return and then come back to this point GOSUB HOMING REM GO TO SUBROUTINE HOMING REM This will then go to _HOMING and run that subroutine until the return REM and then come back to this point REM Pres...

Page 211: ...d Drive Status Panels for errors END REM AXIS1 IS NOT ENABLED PRINT MESSAGE AND END PROGRAM RETURN REM RETURN BACK TO GOSUB Absolute Interpolated Motion Subroutine Subroutine of Basic Absolute Moves _BasicABSMotion Interpolated multi axis moves cause all axes to start and stop at the same time The ACC DEC VEL are the trajectory settings ACC 10 DEC 10 STP 10 VEL 1 ABSOLUTE MOVES X0 X1 Y0 Y1 etc are...

Page 212: ...re done RETURN Absolute Jog Moves Subroutine Subroutine of Jog Absolute Moves JOG ABS are single axis jog moves Multiple jog moves from multiple axis are independent moves stopping at different times They would use their own accel decel velocity settings with axis in settings JOG VEL X1 REM Note jog acc dec vel are per axis and thus the REM axis alias is necessary JOG ACC X10 JOG DEC X10 JOG VEL Y...

Page 213: ...solute and Incremental Moves _JogCOMBOMotion JOG INC X 4 INH 792 REM Inhibit program until jog move done JOG ABS Y 2 INH 824 JOG INC X5 JOG ABS Y5 REM This would start an absolute move on Y axis after starting REM incremental move on X axis INH 792 INH 824 JOG ABS X0 Y0 INH 792 INH 824 RETURN Homing Subroutine _HOMING JOG VEL X1 REM Set axes jog parameters used during homing JOG ACC X10 JOG DEC X1...

Page 214: ...arding Y Axis homing IF BIT 16166 THEN PRINT Y HOMING SUCCESSFUL IF BIT 16167 THEN PRINT Y HOMING UNSUCCESSFUL RETURN ENDP Advanced Homing This sample shows how to first home two axes to their respective home sensors then perform an additional marker search so that they find and settle on their encoders Z channels This is a very high precision homing strategy PROGRAM DRIVE ON X Y INH 8465 3 INH 84...

Page 215: ...d to settle on the Z channel of each encoder which is an extremely repeatable way to home Following that the actual positions are preloaded This allows the programmer to set the machine zero to any place desired while respecting that the machine s design may require homing to occur at a specific location like at a Z pulse on a linear encoder The sample also makes use of a practice that should be s...

Page 216: ...on is negative REM Z Axis settings SET 16216 REM Backup to edge is enabled SET 16217 REM Backup to negative edge SET 16218 REM Set Final approach direction is negative REM Home Z Axis first JOG HOME Z 1 REM Home Successful BIT16198 Home Failed BIT16199 WHILE NOT BIT 16198 IF BIT 16199 THEN GOTO HomeFailed WEND REM Z is successful home X and Y JOG HOME X1 Y 1 REM X Home Successful BIT16134 REM X Ho...

Page 217: ...operation settings ACC 750 VEL 250 DEC 750 STP 750 JRK 2250 REM Change jog profiles back to normal operation settings JOG ACC X1000 Y1000 Z200 JOG DEC X1000 Y1000 Z200 JOG VEL X300 Y300 Z100 RETURN REM Go back to main program execution _HomeFailed IF BIT 16199 THEN PRINT Z Homing Failed IF BIT 16135 THEN PRINT X Homing Failed IF BIT 16167 THEN PRINT Y Homing Failed END ENDP Open Sample PROGRAM THI...

Page 218: ...nate program GOTO LOOP1 _LOOP2 PRINT 1 Program terminated CLOSE 1 RETURN ENDP Teach Array PROGRAM CLEAR REM Clear out any variables dimensioned DIM LV 2 REM Dimension 2 Long Variables DIM DA 1 REM Dimension 1 Double Array DIM V 1 10 REM Dimension 1 String Variable of length 10 Go to subroutine Teach GOSUB Teach END _Teach RES X REM Reset position to zero DRIVE OFF X REM Disable drive teach points ...

Page 219: ...t 24 to turn off NEXT PRINT Teach Completed Total Points Taught LV1 PRINT Press Input 24 to enable drives and move to zero start INH 24 INH 24 DRIVE ON X REM Enable Axis0 X DWL 0 5 X0 REM Moves to zero position INH 516 REM Waits for motion to be completed PRINT Input 24 to run taught points INH 24 FOR TO STEP NEXT loop to make absolute moves to position taught FOR LV0 0 TO LV1 1 STEP 1 X DA0 LV0 I...

Page 220: ...ncoder counts CAM SCALE Z 1 8000 PLS0 SRC P12802 PLS0 DST P4100 PLS0 BASE LA2 PLS0 RATIO 0 01 REM Array entries per input count REM 500 for cam peak 5 array for PLS PLS0 MASK 256 CAM SRC Z RES CAM RES Z CAM ON Z REM Start camming PLS0 ON Y 2 DWL1 Y0 CAM OFF Z PLS0 OFF END _SetupArrays DIM LA 3 REM Dimension 2 long arrays DIM LA0 9 REM LAO has 9 elements LA0 00 0 REM Start defining LA0 cam table LA...

Page 221: ... code for IPA or ACR7000 series as scanner to Wago 750 series REM EtherNet IP bus coupler REM Not compatible with ACR9000 or 3rd party EtherNet IP devices P37392 1 REM number of I O nodes P39424 192 24 168 16 100 8 28 REM IP 192 168 100 28 on Node 0 set this to Wago IP P39425 10 REM Input data interval in ms P39426 10 REM Output data repetition interval P39427 0 _START ETHIP LOOK PRINT DISCOVERING...

Page 222: ...ets default values for MOV default interpolated moves ACC 10 DEC 10 STP 10 VEL 1 REM This sets default values for JOG single axis offset moves JOG ACC X 10 JOG DEC X 10 JOG VEL X 1 REM In case already running stop jogging JOG OFF X Y GOSUB ENABLEDRIVE REM GO TO SUBROUTINE ENABLEDRIVE REM This will then go to _ENABLEDRIVE and run that subroutine until REM the return and then come back to this point...

Page 223: ... IF BIT 8465 THEN PRINT Axis0 is enabled IF NOT BIT8465 THEN PRINT Axis0 is not enabled Ending program Check Motion and Drive Status Panels for errors END REM ENABLE AXIS1 DRIVE ON Y REM TURNS ON OUTPUT TO ENABLE DRIVE INH 8497 3 REM Wait until drive enables or 3 seconds IF BIT 8497 THEN PRINT Axis1 is enabled IF NOT BIT8497 THEN PRINT Axis1 is not enabled Ending program Check Motion and Drive Sta...

Page 224: ...le timer period in ms 0 servo period SAMP TRG 792 REM Start recording on rising edge of axis0 jog REM Note that motion would be within another program typically Prog 0 REM If capturing data for Master0 Interpolated motion such as X Y use REM Master 0 In Motion bit 516 REM Channel 0 sample settings SAMP 0 SRC P12290 REM Set the source to Axis 0 Actual Position SAMP 0 BASE LA0 REM Array for recordin...

Page 225: ...0 is from Peer 0 to REM Scanner The Scanner will read these 4 parameters REM into Group 0 Long registers P39936 P39939 P39699 39400 REM Peer 0 Group 1 Start Parameter These are user parameters which are Floats P39700 2 REM Peer 0 Group 1 Length Peer 0 P39400 P39401 P39701 1 REM Peer 0 Group 1 Direction 1 is from Scanner to REM Peer0 Scanner Group1 Floats are P40072 and P40073 REM Writing values at...

Page 226: ...REM Axis Gain Values AXIS LV1 PGAIN P 12304 LV1 256 AXIS LV1 IGAIN P 12305 LV1 256 AXIS LV1 ILIMIT P 12306 LV1 256 AXIS LV1 IDELAY P 12307 LV1 256 AXIS LV1 DGAIN P 12308 LV1 256 AXIS LV1 DERIVATIVE WIDTH P 12309 LV1 256 AXIS LV1 FEEDFORWARD VEL P 12310 LV1 256 AXIS LV1 FEEDFORWARD ACC P 12311 LV1 256 AXIS LV1 PLUS TORQUE LIMIT P 12328 LV1 256 AXIS LV1 MINUS TORQUE LIMIT P 12329 LV1 256 AXIS LV1 FB...

Page 227: ...tep power of 2 P 7946 LV1 16 Enable Auto Standby BIT 15618 LV1 32 Assert Drive configuration BIT 15616 LV1 32 AXIS LV1 STEPPER SETTING2 IN DEC IS P 8066 LV1 16 AXIS LV1 STEPPER SETTING3 IN DEC IS P 8067 LV1 16 AXIS LV1 STEPPER SETTING4 IN DEC IS P 8068 LV1 16 LV1 LV1 NEXT ENDP ACR7xT Home to Hard Stop PROGRAM REM Stepper motors are open loop Below code presumes encoder REM attached for the step mo...

Page 228: ... if a program is already running downloaded into an empty program To see the values go into the Terminal Emulator and type LRUN at the program prompt after downloading DEFINE Time LV0 DEFINE ms LV1 DEFINE seconds LV2 DEFINE ExcSeconds LV3 DEFINE minutes LV4 DEFINE ExcMinutes LV5 DEFINE hours LV6 DEFINE ExcHours LV7 DEFINE days LV8 DIM LV10 _CheckTime Time P6916 REM capture current time in ms REM E...

Page 229: ...tes Minutes PRINT USING ExcSeconds ms Seconds RETURN Error Recovery IPA This sample on error handling addresses error checking and recovery which should be programmed into each application Error handling is then done automatically as the application runs and is helpful in diagnosing problems PROGRAM PBOOT REM Error recovery program _LOOP IF BIT8467 REM Kill all motion was signaled check causes IF ...

Page 230: ...M SOFT LIMIT WAS HIT CLR 8467 CLR 522 ENDIF RETURN _FaultLatched DRIVE FAULT DID NOT CLEAR CHECK HARDWARE requires a HARD power cycle END ENDP Add On Instructions AOIs for IPA The IPA and ACR7000 are compatible for use with CompactLogix and ControlLogix PLCs and can utilize both Class 1 I O messaging and Class 3 MSG instructions Add On Instructions are available to enhance the development of IPA a...

Page 231: ...ers can also use them The AOIs can be downloaded from the IPA product page here Further details can be found in the EtherNet IP Programmer s Guide for IPA Available AOIs include IPA_ServoOn IPA_ServoOff IPA_Home IPA_Move IPA_MoveStop IPA_MoveVelocity IPA_SetPosition IPA_SetTorqueLimit IPA_Fault Reset Xpress HMI with ACR7000 The Xpress HMI is a compatible HMI for the ACR7000 for applications that n...

Page 232: ...ith IPA The Xpress HMI is a compatible HMI for the IPA for applications that need an operator touchscreen interface This sample includes a jog panel similar to PMM s and a status panel similar to PMM s Common Status Panel Click here for a complete sample on parker com ...

Page 233: ...WRITING ACROBASIC PROGRAMS ACR Programmer s Guide 233 ...

Page 234: ...on some early logic and causes the program to sometimes take another branch Check the Motion Status Panel for a line number This will be set to the line last executed when the program halted In the Terminal Emulator go to program prompt and click List With Line Numbers to see the program with line numbers in controller s memory these are automatically assigned on download HALT command A legitimate...

Page 235: ...ou can use it to graph any parameter and any flag including user parameters and user flags Sampling The channels can be sampled on a regular basis from the PC or at higher speed with onboard sampling This will start with the selected bit trigger typically the Master In Motion bit or for a single axis its Jog Active bit though ...

Page 236: ... to the program stored in PMM This would be done in PMM s Terminal Emulator while online with the controller Each code statement you want to add must include a line number Otherwise the controller could not understand where to place each code statement To determine the correct line numbers go into the Terminal Emulator in Parker Motion Manager and click List Line Number This turns on line numberin...

Page 237: ...f conditionals To exit listen mode press Escape To turn trace mode off use TROFF SYS PROG0 P00 NEW P00 10 DIM LV1 P00 20 LV0 0 P00 30 PRINT CHR 65 LV0 P00 40 LV0 LV0 1 P00 50 IF LV0 3 THEN GOTO 30 P00 60 PRINT P00 TRON P00 LRUN 10 20 30 A 40 50 30 B 40 50 30 C 40 50 60 P00 TROFF P00 LRUN ABC P00 _ ...

Page 238: ...BINARY HOST INTERFACE 238 ACR Programmer s Guide CHAPTER 5 Binary Host Interface ...

Page 239: ...M server designed to automation communications to ACR controllers ComACRServer6 is compatible with VB NET C VBA and many other Windows programming tools any that can use COM Binary Data Transfer The binary data transfers in this chapter consist of a control character Header ID followed by a stream of data encoded according to the current state of the MODE command Note that regardless of the mode t...

Page 240: ...odes Transmitting If the character to be sent is either a 0x7F or a character in the range of 0x00 to 0x1F the character is XORed with 0x40 and proceeded with a character Otherwise the byte is sent normally For example if the character to be sent is 0x01 the character is transmitted as a A string 0x01 XOR 0x40 0x41 A The special case where the character to be sent is the character is handled with ...

Page 241: ...f 0x00 to 0x7F which is then ORed with 0x80 to reestablish the high bit in the data Binary Data Packets Packets allow binary access to system parameters at any time This method must be used if commands are sitting in the input queue since PRINT statements would also be buffered The packet is the quickest way to access information such as current position and following error for display in an appli...

Page 242: ...t retrieval can be done by a centralized receiver This routine would recognize the 0x00 in the header as an incoming packet and act accordingly In a synchronous retrieval mode it is possible for extra data to be in front of an incoming packet header This would occur if there were any ASCII data pending at the time of the request such as during a LIST In order to retrieve a packet correctly the hos...

Page 243: ... There are no groups or masks A parameter access header consists of a Header ID 0x00 followed by a Packet ID code and a two byte parameter index The Packet ID codes for the different types of packets are shown below The following pages define each of the packets in detail Packet ID Codes Code Packet Type Description 0x88 Binary Get Long Receive long integer from controller 0x89 Binary Set Long Sen...

Page 244: ...Byte 2 3 WORD Parameter Index Byte 4 7 LONG Parameter Value Binary Set Long This packet sets a single parameter on the controller The parameter index is a two byte value sent low order byte first The parameter value is a four byte long integer and is sent low order byte first Transmit Packet Data Field Data Type Description Byte 0 BYTE Header ID 0x00 Byte 1 BYTE Packet ID 0x89 Byte 2 3 WORD Parame...

Page 245: ...alue is a four byte image of an IEEE floating point number and is sent low order byte first Transmit Packet Data Field Data Type Description Byte 0 BYTE Header ID 0x00 Byte 1 BYTE Packet ID 0x8B Byte 2 3 WORD Parameter Index Byte 4 7 IEEE32 Parameter Value Receive Packet None Binary Peek Command A binary peek command consists of a four byte header followed by an address and the data to be fetched ...

Page 246: ...Packet Data Field Description Byte 0 Header ID 0x00 Byte 1 Packet ID 0x90 Byte 2 Conversion Code Byte 3 Peek Word Count Long 0 Peek Address Receive Packet Data Field Description Byte 0 Header ID 0x00 Byte 1 Packet ID 0x90 Byte 2 Conversion Code Byte 3 Peek Word Count Long 0 Peek Address Long 1 Peek Data 0 Long 2 Peek Data 1 Long N Peek Data Count 1 Conversion Codes Code Source Destination 0x00 LON...

Page 247: ...mmand consists of a four byte header followed by an address and the data to be stored at that address There is no information returned from this command The header contains a data conversion code that controls pointer incrementing and the IEEE FP32 floating point conversion The conversion only applies to older ACR controllers The ACR7000 and IPA use ARM Cortex processors which support 32 bit IEEE7...

Page 248: ...21110 0x405001 0x23222120 0x405002 0x33323130 Binary Address Command A binary address command consists of a four byte header containing a program number and a parameter code The command returns the header followed by the base address of the parameter type in question If the returned address is zero no parameters of that type have been allocated in the given program Peeking at the returned address ...

Page 249: ...eter Code Long 0 Parameter Address Parameter Codes Code Mnemonic Description 0x00 DV Double Variables 0x01 DA Double Arrays 0x02 SV Single Variables 0x03 SA Single Arrays 0x04 LV Long Variables 0x05 LA Long Arrays 0x06 V String Variables 0x07 A String Arrays Usage Example This example requests the starting address of the Single Variable information for Program 5 NOTE Addresses shown are for exampl...

Page 250: ...s is zero the parameter index was invalid Transmit Packet Data Field Data Type Description Byte 0 BYTE Header ID 0x00 Byte 1 BYTE Packet ID 0x93 Byte 2 3 WORD Parameter Index Receive Packet Data Field Data Type Description Byte 0 BYTE Header ID 0x00 Byte 1 BYTE Packet ID 0x93 Byte 2 3 WORD Parameter Index Long 0 LONG Parameter Address Usage Example This example requests the address of the axis 0 c...

Page 251: ... Header ID 0x00 Byte 1 BYTE Packet ID 0x94 Byte 2 BYTE Reserved 0x00 Byte 3 BYTE Reserved 0x00 Long 0 BYTE Data Address Long 1 BYTE NAND Mask Long 2 BYTE OR Mask Receive Packet None Usage Example This example uses the Binary Mask Command to clear all of the Opto isolated Outputs and then set Output 32 The data address for Opto isolated Outputs Parameter P4097 is assumed to have been previously ret...

Page 252: ...te 1 BYTE Packet ID 0x95 Byte 2 3 WORD Parameter Index Long 0 LONG NAND Mask Long 1 LONG OR Mask Receive Packet None Usage Example This example uses the Binary Parameter Mask Command to clear all of the Opto isolated Outputs and then set Output 32 Fields Header NAND Mask OR Mask Output 00 95 01 10 FF FF FF FF 01 00 00 00 Opto isolated Output Parameter P4097 Modified Data P4097 0x00000001 Binary Mo...

Page 253: ...NG Slave 3 Target or NURB Spline control point Data 07 LONG Slave 4 Target or NURB Spline control point Data 08 LONG Slave 5 Target or NURB Spline control point Data 09 LONG Slave 6 Target or NURB Spline control point Data 10 LONG Slave 7 Target or NURB Spline control point Data 11 LONG Slave 8 Target or NURB Spline control point Data 12 LONG Slave 9 Target or NURB Spline control point Data 13 LON...

Page 254: ...e Data Field Data Type Description Bit 0 FVEL Lockout Forces FVEL to zero for this move Bit 1 FOV Lockout Forces FOV to 1 0 for this move Bit 2 STP Ramp Activate Sets STP equal to DEC else STP 0 Bit 3 Code 3 Present Header contains Header Code 3 Bit 4 Velocity Data Present Packet contains master VEL Bit 5 Acceleration Data Present Packet contains master ACC DEC Bit 6 Counter Dir Count down if set ...

Page 255: ...f set else up Bit 7 Counter Mode Master move counter enable Header Code 1 Data Field Data Type Description Bit 0 Master Bit 0 Master for this move packet Bit 1 Master Bit 1 Bit 2 Master Bit 2 Bit 3 Interrupt Select Interrupt host when move starts Bit 4 Arc Direction CCW if set else CW Bit 5 Arc Mode Packet contains center points or Spline Knot present Bit 6 Arc Plane Bit 0 Primary and secondary ax...

Page 256: ...oints are incremental Bit 2 Floating Point Data Targets and centers are IEEE32 Bit 3 Arc Radius Scaling Packet contains radius scaling NURB Spline Bit 4 FVEL Data Present Packet contains master FVEL Bit 5 Block Skip Check Sets the master Block Skip Check Bit 6 NURB or Spline Move data packet for NURB or Spline Interpolation Bit 7 Extended Codes Extended codes 4 5 6 and 7 are present This bit shoul...

Page 257: ...eserved Reserved Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Header Code 6 Data Field Data Type Description Bit 0 Slave 8 Present Slave target positions to be contained in this move packet Bit 1 Slave 9 Present Bit 2 Slave 10 Present Bit 3 Slave 11 Present Bit 4 Slave 12 Present Bit 5 Slave 13 Present Bit 6 Slave 14 Present Bit 7 Slave 15 Present ...

Page 258: ...e Master Enable Rapid Move Modes flag set Move Modes Bits 0 and 2 in Header Code 0 indicate which type of move mode is contained in the binary move packet as follows Bit 1 Header Code 0 Bit 0 Bit 0 Header Code 0 Bit 2 Move Mode 0 0 Move Mode 0 Feed Continuous 0 1 Move Mode 1 Feed Cornering 1 0 Move Mode 2 Feed Stopping 1 1 Move Mode 3 Rapid Where 0 Bit Cleared 1 Bit Set Example 1 The following ill...

Page 259: ...BINARY HOST INTERFACE ACR Programmer s Guide 259 Example 2 The following illustrates Move Mode 1 Feed Cornering Example 3 The following illustrates Move Mode 2 Feed Stopping ...

Page 260: ...ng point data bit in header code 3 indicates that the target data is in IEEE floating point format otherwise they are long integers Arc Moves When the arc mode bit in header code 1 is set a circular arc is generated using two of the first three slaves attached to a master Any slaves that are given a target position but are not part of the circular interpolation are executed as normal linear moves ...

Page 261: ... The floating point data bit in header code 3 indicates that the given center points are in IEEE floating point format otherwise they are long integers NURB or SPLINE Moves When the NURB or Spline bit in header code 3 Bit 6 is set the move data packet includes NURB or Spline curve data In addition bit 5 and 6 in header code 1 will differentiate if the data is NURB or Spline Bit 5 of header code 1 ...

Page 262: ...e command is not queued and the FOV occurs when the command is first seen by the board The second byte in the header is a bit mask that determines which masters are affected by the FOV value that follows The FOV value is an image of an IEEE 32 bit floating point value sent low order byte first For more than eight masters not possible on the ACR7000 or IPA the header bit mask byte 1 should be set t...

Page 263: ...ected Bit 5 Master 5 Affected Bit 6 Master 6 Affected Bit 7 Master 7 Affected NOTE Masters affected by the FOV contained in this command 16 Master Header Bit Mask Part 1 Data Type Description Bit 0 Master 0 Affected Bit 1 Master 1 Affected Bit 2 Master 2 Affected Bit 3 Master 3 Affected Bit 4 Master 4 Affected Bit 5 Master 5 Affected Bit 6 Master 6 Affected Bit 7 Master 7 Affected NOTE Masters aff...

Page 264: ...aster 0 and Master 2 FOV to 0 123 Binary ROV Command The immediate setting of rapid feedrate override for any or all axes can be accomplished with an eight byte binary command sequence This sequence is a four byte command header followed by a four byte ROV value The command is not queued and the ROV occurs when the command is first seen by the board The second byte in the header is a bit mask that...

Page 265: ...e 2 Byte 7 ROV Byte 3 Header Bit Mask Data Type Description Bit 0 Master 0 Affected Bit 1 Master 1 Affected Bit 2 Master 2 Affected Bit 3 Master 3 Affected Bit 4 Master 4 Affected Bit 5 Master 5 Affected Bit 6 Master 6 Affected Bit 7 Master 7 Affected NOTE Masters affected by the ROV contained in this command 16 Master Header Bit Mask Part 1 Data Type Description Bit 0 Master 0 Affected Bit 1 Mast...

Page 266: ...it 10 Master 10 Affected Bit 11 Master 11 Affected Bit 12 Master 12 Affected Bit 13 Master 13 Affected Bit 14 Master 14 Affected Bit 15 Master 15 Affected NOTE Masters affected by the ROV contained in this command Usage Example This example uses the following IEEE conversions 0 500 3F000000 0 123 3DFBE76D Binary Output Description 07 08 00 00 00 00 00 3F Set Master 3 ROV to 0 5 07 05 00 00 6D E7 F...

Page 267: ...mensioned global variables Read a global variable P index using the following addressing scheme for Peek Peek_Address Global_Variable_Address 1 index 2 Where index 0 to number of dimensioned global variables 1 Even though global variables are stored on board as floating point 64 FP64 numbers they are returned as IEEE32 numbers Conversion Code 0x01 Setting Global Variables Peek at the System Pointe...

Page 268: ...E 268 ACR Programmer s Guide Where index 0 to number of dimensioned global variables 1 Even though global variables are sent as IEEE32 numbers they are stored on board as floating point 64 FP64 numbers Conversion Code 0x01 ...

Page 269: ...TROUBLESHOOTING ACR Programmer s Guide 269 CHAPTER 6 Troubleshooting ...

Page 270: ...lem Isolate and solve one problem at a time Information Collection Document all testing and problem isolation procedures If the problem is particularly difficult to isolate be sure to note all occurrences of the problem along with as much specific information as possible These notes may come in handy later and will also help prevent duplication of testing efforts Once the problem is isolated refer...

Page 271: ...pers or servo motors Enable drive Axis status LED is red Axis fault Motion on this axis is disabled during a fault state NOTE The LED illuminates red whenever the drive fault input is activated drive faulted no axis cable connected etc Check for faulted drive Enable drive Refer to Operation section of this table Check for axis cable disconnected Ethernet Status LED Ethernet link activity yellow LE...

Page 272: ...5645 and 5646 are set reapply 24 VDC to Motion Enable Input If only 5645 then SET 5647 to clear 5645 latch Encoder signal fault and or encoder signal is lost Verify by checking Status Panels Bit Status Encoder Flags NOTE Each encoder input has specific flag sets For Encoder Signal Fault Check for incorrect termination Noise in the system can cause missed and or false encoder feedback values For En...

Page 273: ...ration Control Mode Pulse Input for Stepper Analog Torque for Servo PD xxP with ACR7xC Inputs need to be pulled high to 24 VDC For 71 032478 cable connect White with Blue Stripe to DC reference Blue wire to 24 VDC Drive will not enable cont Drive faulted PMM Status Panels Motion Status Panel For ACR7xC controller check drive for faults errors alarms For ACR7xV or IPA see Bit Status Servo Drive Fla...

Page 274: ... Motor is disabled before brake engages Delay disabling motor by brake s set time ACR7xV Brake Delay after Disable P28687 for Axis 0 ACR7xC Brake would be set by drive check drive settings IPA Set C103 INUFD User Fault Delay in milliseconds Drive will enable but motor will not move Stepper output motion does not occur ACR controller not configured for stepper output in Configuration Wizard Correct...

Page 275: ...s Panels Bit Status Master Flags Each master is indicated by Bit In Feedhold or Feedholding Set the appropriate Cycle Start Request Bit Slave axis not attached to master Check the configuration by going into the correct PROG level Type ATTACH Correct the configuration through the Configuration Wizard and download the setup code Jog or Master Velocity set to zero no Master Profile Check these param...

Page 276: ... enables Disconnect load power brake directly motor shaft should be free to turn Contamination dry mechanics Remove motor to confirm it is the mechanics Check gearhead for contamination Check leadscrew and square rail bearings for lubricant See manufacturer s recommendations Mechanical misalignment Check load bearings ballscrew for misalignment Disconnect load from motor to confirm if it is the me...

Page 277: ...IMIT Axis max velocity is limiting MAXVEL Check the feedrate override by going into the correct PROG level Type FOV Confirm in terminal emulator at motion program Example VEL LIMIT Confirm in terminal emulator at motion program Example MAXVEL X or AXIS0 MAXVEL Assign the appropriate feedrate override value Example FOV 1 indicates a master feedrate of 1 Incorrect torque limit servo only Verify Torq...

Page 278: ...Enable Check that the associated inputs toggled If using onboard I O Status Panels Bit Status Onboard I O Onboard I O Inputs If using expansion I O Status Panels Bit Status EtherNet IP Scanner Flags Node xx Digital Inputs Check Configuration Wizard for inputs assigned as EOTs NOTE A triggered output will create a contact closure not a voltage source I O not working properly Incorrect I O wiring Ch...

Page 279: ...r feedback is not correct for appropriate direction change ENC MULT to the opposite value Unstable servo loop if drive is in velocity mode Check the servo amplifier is in analog torque mode Unstable servo loop gains Servo gains too high Can be issue if load has decreased significantly Retune with PMM Tools Servo Tuner Motor miswiring to drive Confirm motor and drive wiring and motor configuration ...

Page 280: ...APPENDIX A CONNECTING TO THE CONTROLLER 280 ACR Programmer s Guide APPENDIX A Connecting to the Controller ...

Page 281: ...ged after initial communication is established The PC will need to be assigned a compatible IP address to communicate with the controller These steps are detailed below Default IP Address The factory assigns the following to each ACR7000 and IPA IP Address Subnet Mask fixed 192 168 100 01 255 255 255 0 Setting the IP Address and Subnet Mask PC Set the IP address and Subnet mask for your PC These i...

Page 282: ... 5 Select Ethernet More than one Ethernet connection may be displayed When a cable is plugged into the controller and PC and the controller is powered on the Ethernet connection will show as Unidentified network 6 Click Properties Administrator rights may be required ...

Page 283: ...APPENDIX A CONNECTING TO THE CONTROLLER ACR Programmer s Guide 283 7 Select Internet Protocol Version 4 TCP IPv4 8 Click Properties ...

Page 284: ... It is good practice to isolate the ACR IPA and related devices on their own subnet so that their performance is not affected by high volume network traffic Verifying the IP Address The following verifies that Ethernet is set up correctly 12 In Parker Motion Manager the IP Address field is the value for the controller 13 On the Connect screen click Connect In the Terminal Emulator type VER If Ethe...

Page 285: ...the IP address is set based on the IP command If unable to connect change the dial switches to 1 and 0 changing the IP address back to the default of 192 168 100 1 Update PC s IP address per above and try connecting again After connection you can check the IPA s intended IP address using the IP command NOTE ACR7000 series products do not have dial switches If you change the IP address from the def...

Page 286: ... free and open source An understanding of WireShark is needed to use this procedure so it is not recommended for novice users NOTE WireShark is a third party tool and is not maintained or endorsed by Parker These instructions are provided for the convenience of users who are familiar with and prefer to use WireShark 1 Make sure the PC is plugged into the ACR IPA via Ethernet The connection should ...

Page 287: ...et port and short the two sides together while turning on control power The pads can be shorted using copper tap ground strap or a small piece of wire ideally stranded 4 Connect with terminal software such as PuTTY or Hyperterminal to 192 168 100 1 port 5002 Type clear user press Enter and cycle power This erases the controller s programs and non volatile settings back to factory default The IP ad...

Page 288: ...APPENDIX B ETHERNET BASICS 288 ACR Programmer s Guide APPENDIX B Ethernet Basics ...

Page 289: ...Addresses An IP address is an identifier for a device on a TCP IP network Every device connected to the Internet must use a unique IP Address The IP address is comprised of a 32 bit binary address that is subdivided into four 8 bit segments known as octets Because people do not generally think in binary the address is expressed in dotted decimal format Each binary octet is converted to a decimal n...

Page 290: ...indicates network 192 168 where specific hosts can be found Using 255 in an octet indicates a broadcast where data is sent to all host devices on a network For example the IP Address 192 168 255 255 will broadcast data to all host devices in that network Suppose you have 6 computers in a class C network All share the same network address 192 168 10 in the first three octets The final octet for eac...

Page 291: ...evel of addressing some of the host ID is borrowed to create a subnet ID The subnet ID allows you to logically group devices together often related to a specific network segment Once data arrives at the network the subnet ID allows routers or host devices to locate the appropriate network segment and then the host Suppose you have a class C network comprised of 6 computers All share the same netwo...

Page 292: ...the network ID and subnet ID appear use 255 in the subnet mask Suppose on network 172 20 0 0 class B you have to set up a new computer You assign it 172 20 44 180 as the IP address As a class B network the first two octets are reserved for the network ID The third octet is reserved for the subnet ID and the last octet is for the host ID So using the subnet mask 255 255 255 0 identifies the final o...

Page 293: ...APPENDIX C SERVO PID TUNING ACR Programmer s Guide 293 APPENDIX C Servo PID Tuning ...

Page 294: ...imple Motion First This first procedure is important to verify that the system is functional and stable 1 In PMM s Servo Tuner select the axis to tune 2 Click Enable Drive The motor should energize and be stable at standstill 3 Click Move Settings and change if necessary Start with a 1 revolution move in 1 second to confirm that the motor starts and stops okay Distances will be in user units mm in...

Page 295: ...only need to settle into the final position quickly Save to Controller After axis has been tuned click Save to Controller This stores axis tuning gains to non volatile memory Save to Project This allows you to save the tuning gains as part of the project This can be handy for creating a backup copy of the project for the machine However if users have multiple machines different machines mechanics ...

Page 296: ...APPENDIX C SERVO PID TUNING 296 ACR Programmer s Guide ...

Page 297: ...D algorithm to control integral delay The integral delay determines the amount of time after a move ends before integration begins If the value is set to zero integration is active all the time even during moves The default gain is 0 0 for all axes Units are milliseconds Torque Limit TLM This is the controller s analog max output in volts max is 10 volts 100 Users can use this to limit motor torqu...

Page 298: ...vative Smoothing Take away humming noise from the servo motor due to DGAIN The smoothing parameter is P12402 for Axis 0 Axis parameter DGAIN Smooth is used to subdue the humming noise in the torque loop due to DGAIN The default value is 0 which means no smoothing is applied The user may typically change this value from 0 to 5 The DGAIN command must be used after changing this parameter to make thi...

Page 299: ... For standard servo drives this should be left at 0 0 Lowpass Filter LOPASS This command initializes the output filter as a lowpass filter reducing high frequency noise that may occur in a system Setting the cutoff frequency to zero turns off the lowpass filter Notch Filter NOTCH This command sets up the first half of the output filter to act as a notch filter reducing mechanical resonance that ma...

Page 300: ...APPENDIX D PMM IMPROVEMENTS OVER ACR VIEW 300 ACR Programmer s Guide APPENDIX D PMM Improvements Over ACR View ...

Page 301: ...ayout is similar in terms of having a connection panel Configuration Wizard program editor and status panels This summary is a brief synopsis of the major differences between the two development packages Parker Motion Manager supports all ACR7000 controllers plus the IPA single axis drive controller It does not support the ACR9000 ACR9600 or any prior generation ACR Improvement 1 Both use ComACRSe...

Page 302: ...de As comparison ACR View had a scroll list of projects but they were not sorted by last used The image below shows PMM on the left and ACR View on the right Improvement 3 Uploading from an existing controller is now easier from the New Project window File New Project ...

Page 303: ...the project This prevents changes in the Configuration Wizard from failing to update System Code In ACR View it was generated as users moved through the Configuration Wizard which caused issues if users reopened the project and jumped around in the different sections to edit tune adjust settings Improvement 6 Terminal Emulator changes A Users can now arrow up and arrow down rather than retype comm...

Page 304: ...VER ACR VIEW 304 ACR Programmer s Guide E The fourth and fifth groups of buttons have been pre populated with common commands Power users have full edit access and can re use these groups but these predefined buttons help new users ...

Page 305: ...PMM IMPROVEMENTS OVER ACR VIEW ACR Programmer s Guide 305 Improvement 7 The Defines editor is now in table format making it easier for programmers to put in a description and name for bits parameters and constants ...

Page 306: ...nes can be created directly from the Numeric Status panels by right clicking Improvement 9 PMM Windows can be docked pinned or resized They can also be popped out and placed anywhere on the screen very useful for users with two monitors This is a feature of PMM s new user interface engine ...

Page 307: ...7 Improvement 10 The Configuration Wizard now includes Parker mechanics actuators precision tables and gearheads for inches or millimeters This saves the user from having to look up the stage and or gearhead specifications in the catalog when configuring the unit scale ...

Page 308: ...APPENDIX D PMM IMPROVEMENTS OVER ACR VIEW 308 ACR Programmer s Guide Improvement 11 Same motor on multiple axis Quickly populate the Configuration using Axis Copy right click on Axis ...

Page 309: ...In ACR View when doing a Find CTRL F the first instance was found and then the focus was set on the program editor So when users pressed Enter ACR View would remove that text inserting a carriage return and linefeed in its place In PMM the focus remains on the Find Next window So now when pressing Enter it will move to the next instance allowing users to quickly move through the code instead of cl...

Page 310: ...so no more hunting for the signal Note the Servo Tuner is a separate tool like in ACR View but there is not the simple step tuning in the Configuration Wizard which was limited with high resolution encoder systems This was removed because tuning is best performed after configuration is complete Easy motion Set the distance time and move shape with optional S curving and motion is generated automat...

Page 311: ...t is the value of each channel at a given point in time Just mouse over No need to export to Excel though that is still available with the Export Data button Improvement 15 PMM File Transfer provides status information during download It will also highlight download errors ...

Page 312: ...16 Product specific status panels Improvement 17 Oscilloscope now has Flag Parameters available to graph ACR View had this function with a work around but now users can easily select Flag Parameters to visually graph these changes compared to other bits parameters in their programs ...

Page 313: ...IMPROVEMENTS OVER ACR VIEW ACR Programmer s Guide 313 Improvement 18 Four Watch windows now available Each Watch list can hold 20 lines of bits or parameters No more switching between the Numeric and Bit Status panels ...

Page 314: ...ROVEMENTS OVER ACR VIEW 314 ACR Programmer s Guide To populate the Watch lists right click on indicators within the Motion Status Panel Or from the Numeric Status Panel Bit Status Panel or Defines editor just right click ...

Page 315: ...ile parameters P39168 P39423 and non volatile longs P38912 P39167 Improvement 20 The positive direction on an axis is now easily changed with a check box in the Configuration Wizard Improvement 21 Save to Flash in ACR View was 30 60 seconds This has been greatly improved with PMM Improvement 22 New ease of use feature zoom in the Program editor Hold the CTRL key and use the mouse scroll wheel to z...

Page 316: ... View only Program 0 and Program 15 had memory allocated by default Improvement 25 Program 14 has been set for use with the oscilloscopes to prevent conflict with the user s arrays in their programs Improvement 26 Scope tools Servo Tuner Oscilloscope etc can graph individual bits when configured to graph flag parameters Improvement 27 Scope tools Servo Tuner Oscilloscope etc can now graph position...

Page 317: ...APPENDIX E ACR7XC ACR9000 COMPARISON ACR Programmer s Guide 317 APPENDIX E ACR7xC ACR9000 Comparison ...

Page 318: ... Ethernet streams available The ACR9000 supported 4 No battery The ACR7000 is entirely flash based Using retentive variables such as P38912 P39167 32 bit longs or P39168 P39423 32 bit floats No worries The ACR7000 saves these in the background to behave the same as a battery backed ACR9000 9000PxUxBx with the benefit of not having to periodically replace a battery or modify the program when upgrad...

Page 319: ...at is not needed and made drastic improvements to the usability The ACR7xC does not have RS485 on the axis connectors and thus do not support Drive Talk and those related commands DTALK The ACR7000 does not have EthernetPOWERLINK and those related commands are not supported EPLC More form factors are available beyond just the ACR7xC The ACR7000 integrated stepper ACR7xT and ACR7000 integrated serv...

Page 320: ...APPENDIX F ACR7XV IPA DIFFERENCES 320 ACR Programmer s Guide APPENDIX F ACR7xV IPA Differences ...

Page 321: ...here are also parameters and flags used for servo drive or stepper drive configuration and status reporting Those for the servo drive are analogous to the C and S parameters of the IPA in terms of function but are consistent with the ACR parameter and flag model rather than the legacy Aries parameters and commands Also these values may be saved with the ESAVE command and will automatically be rest...

Page 322: ...APPENDIX G 6K TO ACR COMMAND REFERENCE 322 ACR Programmer s Guide APPENDIX G 6K to ACR Command Reference ...

Page 323: ...n ACR as subroutines with labels unless the 6K is using multitasking 6K to ACR Command Crossover Table 6K Command ACR Command Shorthand ACR Command Notes Scaling Setup SCLA SCLV SCLD PPU Requires RES after changing PPU Part of Configuration Wizard SCLMAS GEAR PPU Limits LH3 1 HLIM X3 Y1 LS2 3 SLIM X2 Y3 LSNEG 1 LSPOS 1 SLM X1 Could also set differently using SLM X 10 25 Axis 0 bits shown SET and C...

Page 324: ... REN Use to reset or preset the position counters for an axis Zeroes the Current Position MOV register and adds parameter See also JOG RES GEAR RES CAM RES JOG REN Non Interpolated Motion Incremental Motion D 4 MC0 MA0 GO1 JOG INC X4 See Also JOG ACC JOG DEC JOG VEL D 4 3 MC00 MA00 GO11 JOG INC X4 Y 3 Absolute Motion D MC0 MA1 GO1 JOG ABS X4 Move to the Jog Offset register s absolute position Cont...

Page 325: ...er 0 Uses DEC setting K SET BIT 522 SET 522 Uses the HLDEC deceleration ramp K CTRL X or CTRL Z CTRL X kill all motion for all programs CTRL Z kills motion and disables all drives KDRIVE SET BIT 8471 SET 8471 BITS 8471 8503 8535 8567 8599 8631 8663 869 Linear Interpolated Motion D 2 3 MC00 MA11 GOL11 MOV X2 Y3 X2 Y3 Absolute moves D 7 8 MC00 MA00 GOL11 MOV X 7 Y 8 X 7 Y 8 Incremental moves D 4 5 M...

Page 326: ...AXES TANG Interpolated Motion Trajectory FOLEN GEAR ON OFF LOCK can be used for gantry axes FOLMAS GEAR SRC Can gear to any encoder or parameter FOLRN FOLRD GEAR RATIO GEAR RATIO sign determines direction Use ratio rather than decimal number ex 1 10 GEAR RATIO is a 64 bit floating point value FOLMD GEAR ACC DEC GEAR ACC DEC is change in ratio over time SCLMAS GEAR PPU FMCLEN No direct equivalent U...

Page 327: ...255 255 255 0 IP MASK 255 255 255 0 Variables VARB1 User Flag Parameters Bits 128 255 P4100 4104 and bits 1920 2047 P4156 4159 are user bits VARI1 LV0 Must dimension local variables first Example DIM SV 10 Variables start at 0 for ACR controllers VARS1 V0 Must dimension number and length of string variables VAR1 255 SV0 or DV0 SV are 32 bit floating point local variables DV are 64 bit floats LV ar...

Page 328: ... X0 does not disable excess error checking SMPER0 CLR 8469 Disables error checking Program BREAK END Used to terminate program COMMENT REM Comment is stored Apostrophe Comment is stripped MUST be on its own line DEL NEW Automatically performed by PMM not needed in DEF PROGRAM Starts program definition END ENDP Used to terminate program definition GOTO program GOTO label You cannot GOSUB or GOTO to...

Page 329: ... BIT35 0 TIN P4096 Response is a decimal representation of binary bits TIN 1 BIT0 Reports back a 0 zero for inactive 1 for active input 1TIN P4104 Response is a decimal representation of binary bits TOUT P4097 Response is a decimal representation of binary bits 1TOUT P4105 Response is a decimal representation of binary bits TOUT 1 BIT32 Reports back a 0 zero for inactive 1 for active output Other ...

Page 330: ...C0 Quadrature encoder mode ENCSND1 ENC0 SRC1 Step and direction mode CMDDIR BIT8455 Could also use ENC MULT and DAC GAIN together required for ACR7xC Already part of Config Wizard EPM PM See Position Maintenance ANI P6408 ADC inputs ANO P6400 DAC outputs AS ASX P4120 4168 4296 4360 4600 There are five groups of axis flags in the ACR ...

Page 331: ...APPENDIX H ACR7000 BITS AND PARAMETERS ACR Programmer s Guide 331 APPENDIX H ACR7000 Bits and Parameters ...

Page 332: ...Status Bits Under voltage 15628 Driver chip configured 15620 Drive at Standby current 15629 Driver chip configuration underway 15621 General fault 15630 User configuration invalid default installed 15622 Debug Control Status Bits Change to Standby current underway 15623 Assert Debug write register 15632 Debug configuration underway 15633 ACR7xT Latched Fault and Warning Bits The fault and warning ...

Page 333: ...are for stepper 0 For each subsequent stepper add 16 to the parameter number Unlisted parameters are reserved The parameters are listed first and then fully described individually in the paragraphs below Float Parameter Descriptions Parameter Default Value Range Full scale current Amps P7936 N A Value reported as status Product maximum motor current Amps P7937 N A Value reported as status User sel...

Page 334: ...Bits and Parameters The table below shows the parameters used for servo drive configuration Note these are set from PMM s Configuration Wizard These parameters occupy the same parameter space that had been used for Drive Talk on the ACR9000 and in most cases have the same names and meanings as those parameters Parameter Parameter Name Units Value Motor Default Min Value Max Value Description 28674...

Page 335: ...g µNm rad sec 67 67 0 10000 Value of the motor s damping includes bearing and magnetic losses N meter sec for linear motors 28713 Motor Rotor Inertia Forcer Mass kgm2 10 6 25 25 0 1000000 Motor rotor inertia for rotary motors or the forcer mass kg for linear motors 28715 Linear Motor Pole Pitch mm 0 0 0 300 Electrical pitch of the magnets for use with linear motors Set to zero for rotary motors 28...

Page 336: ...28721 Motor Thermal Time Constant Min 20 20 0 7200 Time the motor takes to reach 63 of its final temperature given constant power 28722 Winding Time Constant Min 0 7 0 7 0 3600 Time for the winding to reach 63 of its final temperature rise above the rest of the motor given constant power 28679 Disable Thermal Switches None 1 1 0 1 Thermal Switch Checking enable 0 disable 1 28716 Motor Velocity Lim...

Page 337: ...87 Brake Delay after disable ms 50 0 0 Delay in milliseconds after DRIVE OFF Servo loop will continue operating allowing time for brake to engaged hold Brake Relay Delay on Enable Specifies the amount of time that the brake relay will remain asserted after the current is applied to the motor windings when the drive is enabled This allows torque to build up in the motor while the brake output is of...

Page 338: ...9254 P29510 P29766 P30022 P30278 P30534 Drive Temperature P28743 P28999 P29255 P29511 P29767 P30023 P30279 P30535 Motor Temperature P28744 P29000 P29256 P29512 P29768 P30024 P30280 P30536 Bus Voltage P28745 P29001 P29257 P29513 P29769 P30025 P30281 P30537 Thermistor temperature P28746 P29002 P29258 P29514 P29770 P30026 P30282 P30538 Fan On P28691 P28947 P29203 P29459 P29715 P29971 P30227 P30483 Cu...

Page 339: ...73 9605 9637 9669 9701 Resistance 0 6 9478 9510 9542 9574 9606 9638 9670 9702 Ke 0 7 9479 9511 9543 9575 9607 9639 9671 9703 Continuous Current 0 8 9480 9512 9544 9576 9608 9640 9672 9704 Peak Current 0 9 9481 9513 9545 9577 9609 9641 9673 9705 Cont Motor Current Drive 10 9482 9514 9546 9578 9610 9642 9674 9706 Torque Rating Drive 11 9483 9515 9547 9579 9611 9643 9675 9707 Peak Current Drive 12 94...

Page 340: ...oltage Fault 30 9502 9534 9566 9598 9630 9662 9694 9726 Bridge Foldback Warning 31 9503 9535 9567 9599 9631 9663 9695 9727 ACR7xV Status 2 Flags All eight axes have their status parameters in a row rather than offset by increments of 256 Parameter Name Mask 0x01 0x02 0x04 0x08 0x010 0x20 0x40 0x80 Flag Parameter Code 0x10 Index 0x04 P4408 P4409 P4410 P4411 P4412 P4413 P4414 P4415 Axis Number Statu...

Page 341: ...92 10224 Alignment Error 17 10001 10033 10065 10097 10129 10161 10193 10225 Hardware Error 18 10002 10034 10066 10098 10130 10162 10194 10226 Internal Error 19 10003 10035 10067 10099 10131 10163 10195 10227 Encoder Read Fault 20 10004 10036 10068 10100 10132 10164 10196 10228 Reserved 21 10005 10037 10069 10101 10133 10165 10197 10229 Encoder Loss Fault 22 10006 10038 10070 10102 10134 10166 1019...

Reviews: