Corporation or its licensers, 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.
The information in this user guide, including any apparatus, methods, techniques, and concepts described herein, are the proprietary property of Parker Hannifin or its licensors, and may not be copied disclosed, or used for any purpose not expressly authorized by the owner thereof.
Revision E Changes ..........................20 Before We Begin ......................... 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 ................
Page 5
CONTENTS Help Menu ................................35 Tools → Options..............................36 Toolbar ............................... 36 Explorer ..............................38 Connection ................................38 Configuration Wizard ............................38 Program Editor ................................ 38 Terminal Emulator..............................38 Tools ..................................39 Status Panels ................................39 Scopes ..................................39 Message Window ............................. 39 Watch Windows ............................
Page 6
CONTENTS Enter Scaling Factor ............................... 51 Fault ................................52 Hardware Limit Detection ........................... 52 Assign Digital Inputs for Specific Functions ...................... 52 Software Limit Detection ............................. 53 Maximum Position Error Detection ........................53 Position Maintenance Settings ..........................53 Memory ..............................54 Finish and System Code .........................
Page 7
CONTENTS Hardware Limits ..............................73 Software Limits ............................... 74 Position Error ................................75 LED Legend ................................75 OS Update ..............................76 Status Panels ..........................78 Motion Status Panel (ACR7000 Family) ..................... 78 Axis Status Bits ................................ 79 Programs ................................... 79 Axis Position ................................
Page 8
CONTENTS Failure Status ................................89 Scanner Parameters ............................... 90 Scanner Parameter Status ............................. 90 EtherNet/IP Node Data ............................91 Controls ..................................91 Servo Loop Status ............................ 92 Scopes ............................93 Common Tools ............................93 Channels ................................... 93 Timebase ................................... 94 Controls ..................................
Page 9
CONTENTS Selection ..............................111 IF/THEN .................................. 111 IF/ELSE/ENDIF ............................... 112 ELSE IF Condition ..............................113 GOSUB/RETURN..............................113 GOTO ..................................113 GOTO and GOSUB Sample Program ..................... 114 Repetition ............................... 115 FOR/TO/STEP/NEXT ............................115 WHILE/WEND ..............................115 Bits, Parameters and Variables ......................116 User Bits and Parameters ...........................
Page 10
CONTENTS Pausing a Program ..............................124 Resuming a Paused Program ..........................124 Affecting Multiple Programs ..........................124 Restart Controller..............................124 Running Startup Programs ..........................124 Parametric Evaluation .......................... 124 Parentheses and Operational Order ....................... 125 Nested Parentheses ............................. 126 Examples ................................. 126 Example Code Conventions ......................
Page 11
CONTENTS Feedback Control ..............................138 Global Objects ..............................139 Interpolation ................................139 Logic Function ............................... 140 Memory Control ..............................140 Non-Volatile ................................140 Operating System ..............................141 Program Control ..............................141 Program Flow ................................ 142 Servo Control ............................... 143 Setpoint Control ..............................143 Transformation ..............................
Page 12
CONTENTS Absolute Motion ........................... 155 Incremental Motion ..........................155 Comparing Absolute and Incremental Motion ................156 Combining Types of Motion ......................157 Immediate Mode ........................... 157 Differences Between FOV and VEL ....................158 What are Motion Profiles? ......................... 158 Interaction Between Motion Profilers ..................... 159 Primary Setpoint ...........................
Page 13
CONTENTS Negative Homing (Homing Backup Enabled) ....................185 Limit Detection ............................. 186 Dedicated I/O for Homing ..........................186 Stopping Motion and Moves ....................... 187 Kill All Moves versus Kill All Motion Request ....................187 Flag Comparison ..............................188 Bit Status Window Comparison ........................188 Contoured (Tiered) Profiles ......................
Page 14
CONTENTS Sample Motion Program ............................. 209 Enable Drives Subroutine ........................... 211 Absolute Interpolated Motion Subroutine ..................... 211 Incremental Interpolated Motion Subroutine ....................212 Basic Absolute and Incremental Motion Subroutine ..................212 Absolute Jog Moves Subroutine ........................212 Incremental Jog Moves Subroutine........................213 Absolute and Incremental Jog Moves Subroutine ..................
Page 15
CONTENTS Program Not Running? ........................234 Axis Motion Status? ..........................234 Graphing with Oscilloscopes ......................235 Sampling .................................. 235 Adding Lines of Code to Programs ....................236 Trace a Program ........................... 236 CHAPTER 5 Binary Host Interface ..................238 Binary Host Interface ........................ 239 Binary Data Transfer ..........................
Page 16
CONTENTS Binary Set Long ..............................244 Binary Get IEEE ..............................244 Binary Set IEEE ..............................245 Binary Peek Command ........................245 Usage Example ..............................247 Binary Poke Command ........................247 Usage Example ..............................248 Binary Address Command ........................248 Usage Example ..............................249 Binary Parameter Address Command .....................
Page 17
CONTENTS Reading Global Variables ............................ 267 Setting Global Variables ............................267 CHAPTER 6 Troubleshooting ....................269 Troubleshooting ........................270 Problem Isolation ..........................270 Information Collection ........................270 Troubleshooting Table ........................270 APPENDIX A Connecting to the Controller ................. 280 Connecting to the Controller ....................281 Setting the IP Address and Subnet Mask—PC ................
Page 18
CONTENTS Test Simple Motion First ........................294 Basic Tuning Process ..........................294 Explanation of Tuning Gains ....................... 297 Proportional Gain (PGAIN) ..........................297 Derivative Gain (DGAIN) ..........................297 Integral Gain (IGAIN) ............................297 Integral Limit (ILIMIT) ............................297 Integral Delay (IDELAY) ............................. 297 Torque Limit (TLM) .............................
Page 19
CONTENTS APPENDIX G 6K to ACR Command Reference ..............322 6K to ACR Command Reference .................... 323 APPENDIX 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 ..................
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. 20 ACR Programmer’s Guide...
This document is intended to accompany the printed and online documents listed below, as part of the ACR product user documentation. Reference Document Description PMM Quick Start Guide Walkthrough of Parker Motion Manager for first time users ACR Command Reference Provides detailed descriptions of all AcroBASIC language commands with examples ACR Parameter & Bit Reference...
• 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.
PARKER MOTION MANAGER Parker Motion Manager The ACR7000 series controller and IPA are configured and programmed with Parker Motion Manager (PMM), a Windows-based programming tool designed to simplify and speed up your ACR programming efforts. PMM’s Configuration Wizard has been streamlined to help you quickly set the controller’s: •...
PARKER MOTION MANAGER Getting Started with PMM When first starting PMM, the Start screen will appear. A new project can be initiated or an existing project can be opened. As projects are created, they will appear under Recent Projects. The Start screen can be disabled or re- enabled under Tools →...
PARKER MOTION MANAGER Connection The Connect window can be opened by clicking the controller name in the Explorer (left-hand side of PMM). The connection status is shown on the Explorer. The red circle with white X will appear when not connected to the controller, making it easy to determine if you are not connected when in the Program Editor, Status Panels, Scopes, etc.
Page 27
PARKER MOTION MANAGER Multiple connections are supported but each controller will need its own unique IP address. For the ACR7000, use the IP command 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.
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).
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.
Page 30
PARKER MOTION MANAGER 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.
PARKER MOTION MANAGER Step 8: After the reboot is done, the PMM File Transfer dialog will reappear. Click Show Report to see what was downloaded. Errors will be highlighted in red. Reference Several dialogs shown in the Procedure section above deserve more explanation. This information is shown separately to keep the procedure light and easy to follow.
Page 32
PARKER MOTION MANAGER The Download Defines check box selects whether defines are sent down. The Download Program(s) check box selects whether programs are sent down. The associated pull-down selects which program to send down. The user can also select All Programs.
PARKER MOTION MANAGER Parker Motion Manager Parts The main screen of PMM is divided 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.
PARKER MOTION MANAGER File Menu Manage project files. Most of these are standard Windows file management tools and are self-explanatory. Revert Project reloads the project from the saved copy on the hard drive. Print allows the user to print any text-based editor (like the Program Editor) to PDF or a printer.
Take System Snapshot can help if you need to send data about your PC configuration to Parker engineers. About Parker Motion Manager will display the version of PMM. ACR Programmer’s Guide 35...
PMM yet. The Show debug messages 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”...
Page 37
PARKER MOTION MANAGER Saves the changes to the current project. Opens a print dialog for sending the current text to a printer (including print-to-PDF). Displays/hides the Message Window. Undoes the last change made to the text in the active control.
PARKER MOTION MANAGER Opens the Halt Program(s) dialog. Explorer The Explorer is divided into several sections. Connection These tools allow the user to rename the controller, add another controller to the project, delete a controller, connect to a controller or disconnect from a controller.
PARKER MOTION MANAGER Tools The Servo Tuner is a graphical tuning tool that helps the user run test moves, evaluate performance and update gains. Not available for stepper axes. The Jog/Home/Limits screen is used to test jog motion on each axis, allowing the user to quickly verify that the hardware and configuration are working correctly.
PARKER MOTION MANAGER • WatchdogTimeout Reconnect Event triggered. This means that PMM has previously lost its connection to the controller but is attempting to reestablish it. This happens when the controller is rebooted after a download. • WatchdogTimeout Event triggered. This is the warning that occurs immediately after PMM loses its connection to the controller.
Page 41
PARKER MOTION MANAGER Each watch window can hold 20 rows of bits or parameters. → To add defines to a watch window, go to Program Editor Defines and right-click the define you want to add. Then, click Watch and select the watch window that should display the define.
Page 42
PARKER MOTION MANAGER The Bit Status panel can also be used to populate watch windows. 42 ACR Programmer’s Guide...
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. Axes The first item in the Configuration Wizard is the Axes screen, used to create basic functional groupings of axes.
Page 44
PARKER MOTION MANAGER Users can rename the axes if they prefer. The names are only used for identifying the axes and to not ascribe any specific motion properties. For instance, an axis called U is not required to be a rotary axis.
PARKER MOTION MANAGER In the system shown above, the two subsystems would be attached to different masters, like Master 0 and Master 1. This would allow the controller to tightly coordinate moves within each subsystem, but would also allow each subsystem to maintain its independence from the other.
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 Size/Winding pull-downs to select the type of motor in use. The motor’s model number can be found on its product label.
The No Heat Sink option reduces the torque rating of the motor slightly to help prevent it from overheating. The Show Advanced Motor Parameters checkbox activates a hidden screen that is not normally needed when using a Parker motor—it is unchecked by default. However, it should be checked whenever a third-party motor or ACR Programmer’s Guide 47...
The Motor Type radio selector can be set to Rotary for rotary motors or Linear for linear motors. This helps with automatic scaling calculations later. If a Parker motor and drive have been selected, this option is grayed out. If Motor is set to Other, the user needs to select Rotary or Linear as appropriate.
PARKER MOTION MANAGER Consult the drive’s documentation to know which is appropriate. Feedback The ACR7000 and IPA controllers support several standard feedback types. The Feedback screen allows the user to fine-tune their configuration. Each controller type has its own version of the screen, but there are a few common tools: •...
PARKER MOTION MANAGER the encoder resolution under Feedback. Linear quadrature encoders, such as with Parker precision stages, are also supported. The ACR7xV integrated servo requires encoder feedback for closed-loop servo control. If a Parker servo motor was selected on the Drive/Motor screen, the feedback screen will have already been set based on the motor specifications.
If a Parker actuator is not selected, the option is provided to enter the lead of the screw or diameter of the roller in the provided field. This field is filled automatically if a Parker actuator is selected.
Onboard Input in the image above) are used to select which input serves this limit/home function. The Input Type pull-downs can be used to select between Normally Open and Normally Closed. Most Parker mechanics that ship with limits have normally closed limit switches and a normally open home switch.
PARKER MOTION MANAGER Software Limit Detection Software limits can be used to limit travel range. If the travel range is exceeded, the axis will be brought to a controlled stop. This is especially useful in systems that use absolute encoders but do not have limit switches.
PARKER MOTION MANAGER Memory This screen helps the user allocate the ACR’s available memory to programs, global variables and Defines. The memory allocation (in bytes) can be altered in the Value column. The Allocation bar at the bottom of the screen shows how much memory is used and how much is free.
PARKER MOTION MANAGER configuration must be downloaded to the controller again. If the configuration is re-downloaded, it is also a good idea to download everything else as well since downloading a configuration wipes programs. Finish and System Code The Finish screen completes the Configuration Wizard. It displays any errors and warnings. Errors will need to be corrected before downloading.
PARKER MOTION MANAGER Program Editor The Program Editor section in the Explorer has fifteen program editors (Program 00 to Program 14) and the Defines editor. The program editors are used for writing programs in AcroBASIC and support syntax highlighting: •...
PARKER MOTION MANAGER Terminal Emulator The Terminal Emulator allows programmers to send AcroBASIC commands directly to the controller. The Terminal Emulator is frequently used to: • List programs so that their contents can be reviewed without having to do an entire project upload.
Page 58
PARKER MOTION MANAGER are case-insensitive, but axis aliases (e.g. X or Y) and defines are not. While it is typical for one line to have one command, multiple commands can be put on the same line by separating them with a space, a colon and another space (“...
Page 59
PARKER MOTION MANAGER The LIST command can also display a part of the program between a range of line numbers. To start two programs and the same time and listen to one, separate RUN PROGx and LRUN with a “space : space”...
Page 60
PARKER MOTION MANAGER The “?” operator can be used as shorthand for PRINT, saving time when querying bits and parameters. Write to a bit with SET and CLR. Bit 32 is the controller’s first onboard output. If it is not connected to an indicator, its status can be viewed on the Bit Status panel or queried by issuing “? BIT32”...
PARKER MOTION MANAGER User Buttons New for User Buttons have been improved. Users can now name these buttons and insert commands or multiple lines of code. This can save time and prevent typos while debugging. The code is sent with a mouse click.
Page 62
PARKER MOTION MANAGER There are 60 User Buttons (5 groups of 12) with common commands preloaded in the last two. 62 ACR Programmer’s Guide...
PARKER MOTION MANAGER Tools The Tools section in the Explorer includes the Servo Tuner, Jog/Home/Limits screen and OS Update panel. Servo Tuner The Servo Tuner is a fast and easy way to tune servo axes. The axis can be selected from the pulldown in the upper left-hand corner of the Servo Tuner.
Page 64
PARKER MOTION MANAGER • Channel 1 shows Following Error in yellow. Units are encoder counts. • Channel 2 shows Current Jog Velocity in green. Units are encoder counts per second. • Channel 3 shows Final Output Signal in orange. Units are ±10 and represent the torque command in volts.
PARKER MOTION MANAGER Position Loop Gains Servo gains can be changed using the fields on the left-hand side of the Servo Tuner. There is a pull-down at the top of the panel to select which axis to modify. The gains are broken into three groups: •...
PARKER MOTION MANAGER • Move Settings • Single Run • Repeat Run The Move Settings dialog allows users to input a distance and time for a test move that will be executed by the Servo Tuner. It automatically calculates the velocity and acceleration ramps required and allows the user to specify several levels of S- curve profiling (jerk limiting).
Page 67
PARKER MOTION MANAGER • 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 graph back and forth horizontally.
PARKER MOTION MANAGER is the number of channels in use, t is the length of time visible on the horizontal axis in seconds and t channels test sample is the sample time in seconds. If the sample time is set to Servo Period, the actual sample time depends on the controller in use.
PARKER MOTION MANAGER Jog/Home/Limits The Jog/Home/Limits screen gives users the ability to enable the drive and jog the motor in either direction and provides additional dialogs for users to fine-tune their limit and home settings. The screen is divided into several subpanels that either display status or allow the user to perform an operation with the axis.
Page 71
PARKER MOTION MANAGER Below the Drive subpanel is the control panel for jogging. When the drive is enabled, click Jog Positive or Jog Negative to jog the axis. Clicking Kill All Motion & Disable All Drives will stop all motion on all axes and disable torque on all drives.
Page 72
PARKER MOTION MANAGER NOTE: Remember that in the ACR architecture, setting acceleration, deceleration or jerk parameters to 0 is interpreted as setting them to infinity. In the example above, zero jerk will result in a trapezoidal or triangular move profile.
PARKER MOTION MANAGER • Home Input Not Tripped. Indicates whether the home input has turned on. Homing dynamics can be altered on this screen. Click Home Setup to change them. NOTE: These options are not saved with the project configuration. However, the code to set these options can be copied out of the Terminal Emulator as long as it is open when clicking OK.
PARKER MOTION MANAGER Software Limits The Software Limits subpanel shows the status of the position soft limits for the 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.
PARKER MOTION MANAGER Position Error The Position Error subpanel shows whether this axis has exceeded its maximum allowable position error. 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.
PARKER MOTION MANAGER OS Update The OS Update screen is used to install a newer version of firmware into an existing controller. This may be required to take advantage of a previously unavailable feature or improvement. Some users prefer to standardize on one OS version and “back-rev”...
Page 77
PARKER MOTION MANAGER Click Open to start the download. NOTE: Do not interrupt the OS download process. Cycling power on the controller 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.
PARKER MOTION MANAGER Status Panels The status panels are designed to aide in commissioning and troubleshooting a machine. When problems arise, it usually helps to find a status panel that displays the data you need and pin it somewhere convenient.
PARKER MOTION MANAGER Axis Status Bits The upper left-hand subpanel displays status bits for each axis. The bits are each labeled with easy-to- understand descriptions on the left. For more information on a particular status light, hover the mouse over the light in question. A tooltip with appear with the bit number for that indicator.
PARKER MOTION MANAGER different move profilers—more on that later. Master This subpanel just displays the status of the Moving and Kill All Moves flags for each master. When a Kill All Moves Flag is turned on, all master moves (e.g. X12 Y/5) will be prohibited until it is cleared.
PARKER MOTION MANAGER Control Status The Control 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.
PARKER MOTION MANAGER Drive Faults The Drive Faults subpanel varies depending on whether the axis is a stepper or servo axis. The image here shows the servo version. Some of these bits are faults and others are warnings. All of them are related to a hardware problem on the axis.
PARKER MOTION MANAGER Common Status Panel (IPA) The Common Status Panel, available for the IPA, combines the Motion Status Panel and Drive Status Panel into a single interface to show the user all relevant status and fault data at once. This is feasible because the IPA only has a single axis.
PARKER MOTION MANAGER • Kill All Motion. Issues a Kill All Motion Request, which will bring the axis to a stop and prevent further motion. • Clear All Kills. Clears any previously initiated Kill All Motion Request, allowing motion again.
PARKER MOTION MANAGER Programs This subpanel shows which programs are currently running. It also shows their current state and line number. Line numbers typically go by 10s in ACR programs. To see a program listed with its line numbers, go into the Terminal Emulator and click List Line Number.
Page 86
PARKER MOTION MANAGER Axis parameter indices are separated by 256 (12290 + 256 = 12546). For example, Axis 0 Current Position is P12288 and Axis 1 Current Position is P12544. This pattern can be seen with other resources (like encoders), but the offset is not always 256.
Page 87
PARKER MOTION MANAGER Or an axis’ drive settings. NOTE: Not all parameters are used in 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...
PARKER MOTION MANAGER Bit Status The Bit Status shows the status of every bit in the ACR. It works much like the Numeric Status. Indicators show green for on (a.k.a. set or non-zero) and red for off (a.k.a. clear or zero).
PARKER MOTION MANAGER Ethernet/IP Status Panel The EtherNet/IP Status Panel shows detailed status information for the controller’s EtherNet/IP adapter, master and peer-to-peer connections. The EtherNet/IP Status subpanel houses fields and indicators pertaining to overall network status. The Network Operational indicator at the top shows whether the EtherNet/IP network is running and exchanging data. Note that this does not mean the network is free of errors.
PARKER MOTION MANAGER Scanner Parameters This subpanel displays basic network status data: • Number of I/O Nodes. This is the number of connected PIO-363 (Wago 750-363) EtherNet/IP bus couplers. Up to four connections are supported. • Number of Peer Nodes. This is the number of connected ACR controllers.
PARKER MOTION MANAGER EtherNet/IP Node Data This subpanel, located on the right-hand side, houses tables displaying node-specific status data. This is helpful when troubleshooting node-specific problems. The top table displays the status of the I/O nodes: • Node IP Address. IP address of the node.
PARKER MOTION MANAGER • Discover Network. Checks to verify the availability of all nodes. Good for verifying network integrity before starting the network. • Reset Network Nodes. Reset connections to all nodes and restart the network. Other useful data related to EtherNet/IP can be found in the Numeric Status and Bit Status. In particular, the values of actual I/O data and peer-to-peer data can be found there.
PARKER MOTION MANAGER Scopes There are four independent scopes in PMM: • Oscilloscope 1. • Oscilloscope 2. • Strip Chart. • XY Plot. These scopes are not tied to any specific purpose and can be used for general troubleshooting. Most of the tools will be familiar to anyone who has already used the Servo Tuner.
PARKER MOTION MANAGER 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 using three pull-down menus. The top menu selects the parameter group, the second menu selects the subgroup and the third selects the individual parameter type.
Page 95
PARKER MOTION MANAGER Clicking Sampling opens the sampling dialog. Here, the user can select PC-based Sampling (default) or Onboard Sampling. PC-based sampling means that PMM will request the parameter value over Ethernet at the specified rate. The sample data is transmitted as needed without buffering. This is convenient and does not impose a memory burden on the controller, meaning the graph can store very large data samples.
PARKER MOTION MANAGER faster interval (all the way down to the servo period). However, ACR controllers have limited memory and large data samples are not always possible. If there is not enough memory available to run the test with onboard sampling, PMM will log the error message “failed to allocate program memory for sampling buffer”...
PARKER MOTION MANAGER The Scope The graphical scope is the central feature of each scope tool and shows data captured from the controller during a test. This helps users visually understand what their axis is doing during the test. It is common to graph parameters like Following Error, Secondary Setpoint, Actual Torque and other control loop parameters.
PARKER MOTION MANAGER Oscilloscope The Oscilloscope is the most flexible scope tool in PMM. For convenience, 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.
PARKER MOTION MANAGER Strip Chart The Strip Chart is like the Oscilloscope, but is designed to monitor signals for longer periods. Because it is meant for monitoring slower signals, onboard sampling is not an option. The Strip Chart only uses PC-based sampling.
PARKER MOTION MANAGER XY Plot The XY Plot replaces the time axis with another value axis. 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).
ACR BASICS ACR Basics The AcroBASIC programming language accommodates a wide range of needs by providing basic motion control building blocks, as well as sophisticated motion and program flow constructs. The language comprises simple ASCII mnemonic commands each on its own line or separated by a delimiter. Let us start by taking a look at a basic program and what each line does: PROGRAM ...
ACR BASICS The multiple spaces between X and : are extra and okay; the minimum is one space, followed by a colon, followed by one space. This allows programmers to align their program notes for readability. REM is a remark for programmer’s notes but is technically a command and thus needs to be separated from DRIVE ON X with the delimiter.
ACR BASICS Program Labels Labels are program pointers which provide a method of branching to specific locations, including subroutines, within the same program. Labels can only be defined within a program and executed with a GOTO or GOSUB from within the same program. Observe the following rules when creating and using labels: •...
ACR BASICS : REM Move 0 position. This is an absolute move X-5 Y5 : REM Linearly interpolated move to X-5 Y5 With a linearly interpolated move, all axes start and stop at the same time. The velocity, accel and decel are for the path of all commanded axes.
Page 106
ACR BASICS Or, for multiple axes: DRIVE ON AXIS0 AXIS1 Programmers will get an Unknown command error message if trying to use the axis name outside the program to which it is attached: 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.
ACR BASICS 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. ACR Programmer’s Guide 107...
Page 108
Request (KAMR) bit. The axes will not be disabled. To run the program again, click Clear All Kills. This will clear the Kill for the Master(s) as well as the KAMR for the axes. Then the program can be run again. There are several ways to kill motion from Parker Motion Manager: •...
Note that when the motors are disabled, the drive’s brake outputs (for servo drives) will turn off, engaging brakes on the motor. Parker servo motors have standard fail-safe brakes as an option, where the brake needs to be powered to disengage.
ACR BASICS Wait for Bit or Parameter There are two commands that pause program execution waiting for a condition: INH and IHPOS. The INH command lets you inhibit (pause) program execution until the state of a selected bit occurs. Similarly, the IHPOS command lets you inhibit program execution until a parameter value is reached.
ACR BASICS The Jog Active bit can be used for Jog moves. Jog moves are not buffered and a second Jog move will interrupt the first one. This will inhibit the program until Master 0’s In Motion flag is off. This can be used for any MOV, INH -516 such as a single-axis X10 or a multiaxis MOV such as X5 Y5.
ACR BASICS The IF portion is the condition to test; if the condition proves true, the THEN portion of the statement executes. If instead the condition proves false, the THEN statement is ignored and program execution moves on to the next statement.
ACR BASICS ENDIF ELSE IF Condition The IF/ELSE statement can include the ELSE IF condition. The ELSE IF condition lets you create a series of circumstances to test. There is no practical limit to the number of ELSE IF conditions you can include. However, they must come before the ELSE condition.
ACR BASICS The following demonstrates a simple GOTO statement. The program sets output bit 32, then moves axis X one incremental unit in the positive direction. The program pauses until Axis 0’s Not In Position bit (bit 768) turns off (meaning it is in position), then clears the output, waits 2 second, and goes to LOOP1.
ACR BASICS RETURN : REM Go back to GOSUB STARTUP and continue ENDP Repetition The repetition structure—known as a loop—controls the repeated execution of a statement or block of statements. While the conditions remain true, the program loops (or iterates) through the specific code. Typically, the repetition structure includes a variable that changes with each iteration.
ACR BASICS The WHILE sets the condition and is followed by statements you want executed when the condition is true. When the condition is false, the statement immediately following WEND executes. The condition is evaluated only at the beginning of the loop. When using a WHILE/WEND statement, observe the following: •...
ACR BASICS NOTE: The values for some parameters and bits change automatically through operation of the ACR controller. Changing (writing) a value does not ensure the parameter or bit retains the value over the course of operations. Use caution—forcing a value to change can cause unpredictable results.
ACR BASICS PMM’s Bit Status now includes the User Flags. Note the P4100 in the top-right indicating that parameter is made of bits 128-159. Using Parameters and Bits You can specify parameters and bits in your programs or in the Terminal Emulator. Use the format Px or BITx, where x represents the parameter or bit number.
ACR BASICS CLR Bit32 CLR BIT 32 CLR is also always used with a bit. Thus, the BIT in the line is redundant and optional. Note the space between BIT and the number is optional and both are valid syntax. Printing the Current Value You can send the PRINT command followed by a parameter or bit whose value you want to see.
ACR BASICS VEL 5 : REM Set target velocity. : REM Move axis to position. : REM Move axis to position. : REM Move axis to position. : REM Move axis to position. GOTO LOOP ENDP Before running the program, make sure you are at the Program 0 prompt in the Terminal Emulator. The LRUN command lets you listen through a terminal to the PRINT statements and error messages.
ACR BASICS Local variables need to be dimensioned within program. Place a CLEAR command prior to a DIM statement to clear out any previously dimensioned variables. Below is a sample program that extends and retracts and actuator to feed out material, printing the number of cycles, the length and the motor position.
Page 122
ACR BASICS To assign defines, use the Defines editor in the Program Editor tree. This is a central location for defines that are global across all programs. The #DEFINE command can be used within a program editor, at the top, before the PROGRAM line. NOTE: Aliases are reserved in memory.
ACR BASICS ENDP Aliases thus make programs easier to read by allowing programmers to name bits and parameters. Starting, Pausing, and Halting Programs PMM’s Toolbar allows you to start and halt programs using buttons. From the Terminal Emulator, you can also control programs from the SYS prompt, as well as any PROG prompt. You must include the program number when issuing the command from outside its program—for example, RUN PROG0.
ACR BASICS Halting a Program You can stop program execution from the SYS or PROG prompts using the HALT command. This will not interrupt a move in progress. NOTE: HALT cannot be used inside a program. To terminate a program in the middle of execution inside a program, use the END command.
ACR BASICS • Variables • Parameters • Bits • Aliases An expression is comprised of at least one operand and one or more operators. Operands are values, whether literals or variables. Operators are symbols that represent specific actions. For example, the plus sign (+) represents addition, and the forward slash (/) represents division.
ACR BASICS Results in -16 as the answer. Nested Parentheses You can also embed parentheses, where operations in the deepest parentheses are performed first. For example, the expression: ((7 + 3) / 2) * 3 Contains embedded parentheses. From the example, the first operation is 7 + 3, the second operation is 10 / 2, and the third operation is 5 * 3, which results in 15 as the answer.
ACR BASICS DV0=RND(4294967295) : REM set DV0 equal to random number P4097= DV0 : REM set onboard outputs equal to DV0 GOTO LOOP2 ENDP Example Code Conventions Examples that include code are provided throughout most of the ACR Series documentation to illustrate a concept, supply model code samples or to show multiple ways to employ the commands.
ACR BASICS ACR System This section details the architectural layout of the ACR. Knowing the system architecture can help a developer better understand the product's strengths and limitations, allowing them to take full advantage of it. ACR Architecture The ACR7000 uses a high-speed multitasking System on Module (SOM) processor for program and motion control.
EtherNet/IP systems. Ethernet TCP/IP You would first use the Ethernet port to configure and program the controller using Parker Motion Manager (PMM). PCs, HMIs and other machine components can also connect using Ethernet TCP/IP. The ACR7000 and IPA allow both ASCII communications through port 5002 and binary communication through port 5006.
ACR BASICS EtherNet/IP Node The ACR7000/IPA can also be a node on an EtherNet/IP network for use with Allen Bradley and Omron PLCs (others too). Both support class 1 and class 3 messaging. Further information can be found in IPA Ethernet/IP Programmer’s Guide.
Page 132
ACR BASICS ACR EtherNet/IP Architecture Examples ACR standalone Peer-to-Peer (up to 4). PC control via TCP/IP and two ACRs with Peer-to- Peer. PLC control via EtherNet/IP with two ACRs Peer-to- ACR cannot be an EtherNet/IP slave to both a PLC and Peer.
ACR BASICS Command Syntax The AcroBASIC programming language accommodates a wide range of needs by providing basic motion control building blocks, as well as sophisticated motion and program flow constructs. The language comprises simple ASCII mnemonic commands, with each command separated by a command delimiter (carriage return, colon, or line feed).
ACR BASICS 11. Product Revision: To determine whether the command applies to your specific ACR series controller and firmware revision, see the Command and Firmware Release table. Arguments and Syntax The syntax of an AcroBASIC command shows you all the components necessary to use it. Commands can contain required and optional arguments.
ACR BASICS Because the PGAIN command can report on multiple axes, you specify at least one axis on which the controller is to report back. P00>PGAIN X 0.0001 P00>PGAIN X Y 0.0001 0.0002 Example 3 IPB {AXIS {value}} {AXIS {(value1, value2)}} … The AcroBASIC language provides programming shortcuts.
ACR BASICS IPB AXIS0 (P0) AXIS1((P1),(P2)) Same if using Aliases with variable substitution: #DEFINE ipbx P0 #DEFINE ipbypos P1 #DEFINE ipbyneg P2 IPB X (ipbx) Y((ipbypos),(ipbyneg)) IPB AXIS0 (ipbx) AXIS1((ipbypos, ipbyneg)) Note that NOT is not an operation and does not need to be in parentheses with a bit. This is valid syntax: IF (BIT 0 AND NOT BIT 1) THEN P100=6 Example 6 Program sample using variables for move parameters:...
ACR BASICS Commands Lists The tables in this section list commands according to the following command groups: Axis Limits Non-Volatile Character I/O Operating System Drive Control Program Control Feedback Control Program Flow Global Objects Servo Control Interpolation Setpoint Control Logic Function Transformation Memory Control Velocity Profile...
ACR BASICS SLDEC Software limit deceleration Software limit enable SLIM Software positive/negative travel range Set torque limits Character I/O Command Description CLOSE Close a device INPUT Receive data from a device OPEN Open a device PRINT Send data to a device TALK TO Talk to device Drive Control...
ACR BASICS ROTARY Set rotary axis length Global Objects Command Description Analog input control AXIS Direct axis access Ethernet/IP status Analog output control Quadrature input control FSTAT Fast status setup LIMIT Frequency limiter MASTER Direct master access Programmable limit switch RATCH Software ratchet SAMP...
ACR BASICS TARC 3-D circular interpolation Start new trajectory Logic Function Command Description Clear a bit flag Delay for a given period IHPOS Inhibit on position Inhibit on bit high or low MASK Safe bit masking Set a bit flag Start move on trigger Memory Control Command...
ACR BASICS PBOOT Auto-run program Operating System Command Description ATTACH Define attachments BOOTREV Displays boot revision CONFIG Hardware configuration Display processor loading Display the defined variable #DEFINE Define variable DETACH Clear attachments DIAG Display system diagnostics ECHO Character echo control HELP Display command list IP address...
ACR BASICS Turn on block mode Halt an executing program HALT LIST List a stored program LISTEN Listen to program output Run and listen to a program LRUN Clear out a stored program PAUSE Activate pause mode Program comment RESUME Release pause mode Run a stored program STEP...
ACR BASICS WHILE/WEND Loop execution conditional Servo Control Command Description DGAIN Set derivative gain Dead zone integrator negative value Dead zone integrator positive value DWIDTH Set derivative sample period Dead zone inner band Dead zone outer band FBVEL Set feedback velocity FFACC Set feedforward acceleration FFVC...
ACR BASICS Set rapid feedrate override Set external time base Set stop ramp SYNC Synchronization mode Set time-based move TMOV Time override VECDEF Define automatic vector VECTOR Set manual vector Set target velocity for a move Startup Programs You can set a program to automatically run on powering up or rebooting the controller. The PBOOT command provides that ability.
To change memory allocations, use PMM’s Configuration Wizard and download to the controller. Return to Factory Default To erase the controller’s programs and settings and reset back to factory default: Open Parker Motion Manager Connect to the controller. Open the Terminal Emulator.
There are two methods: you can manually write the configuration code or use the Configuration Wizard in the Parker Motion Manager (PMM) software. As the number of axes increase, the code required to configure a controller can be extensive. The Configuration Wizard helps ensure all constituent devices are configured quickly and correctly.
Page 148
ACR BASICS If you do not make any changes to the Memory defaults, the wizard allocates memory to all programs with a large size for Program 0, 10 kB for motion programs Prog 1-Prog 7 and 1 kB for non-motion programs Prog 8-Prog 13. Program 14 is used for PMM’s graphing tools (Servo Tuner and Oscilloscope) and thus has a large memory set for onboard data collection.
Page 149
ACR BASICS The next section is the Axis Gains values. Servo Gains for a stepper axis are set by default and used internally by the controller. Default tuning gains are set for the IPA, ACR7xV and ACR7xC servo axes and can be tuned with the Servo Tuner.
Page 150
ACR BASICS AXIS1 PPU 30720.000000 AXIS1 EXC (1,-1) AXIS1 PM SCALE 12.8 SET BIT8501 : REM Enable EXC Response SET BIT17195 : REM Enable step motor to encoder scaling REM ACR Extended IO Settings SET BIT8500 : REM Enable Drive I/O CLR BIT8496 : REM Enable CW CCW vs StepDir CLR BIT8502...
ACR BASICS AXIS7 OFF AXIS8 OFF AXIS9 OFF AXIS10 OFF AXIS11 OFF AXIS12 OFF AXIS13 OFF AXIS14 OFF AXIS15 OFF Program 0, a motion program, is attached to Master 0 which is the multiaxis motion trajectory calculator. Axes 0- 3 are attached based on the Axes settings in the Config Wizard and the default profiles values are also set. REM ------------------------------- REM --- Program Level setup REM -------------------------------...
MAKING MOTION Making Motion Now that the controller is configured, it is ready to make motion. The ACR controller can perform linear, circular, or more complex motion with a single axis or multiple axes. Four Basic Categories of Motion There are four basic categories of motion used in motion control: coordinated, jog, gear, and cam. •...
MAKING MOTION NOTE: When commanding motion, you must use the axis name; the axis number is not a valid way to indicate an axis. For more information on axis names, see Slaves and Axis Names. Absolute Motion Absolute motion is commanded with respect to the established “home” or reference location. To make a linear-interpolated move with the MOV command, use the arguments axis target, specifying the axis name followed by the target position.
MAKING MOTION X/2 Y2 Z/-2 Comparing Absolute and Incremental Motion Different types of motion can be used to achieve the same result. The following examples show absolute and incremental motion, and 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: X100...
MAKING MOTION x/50 x400 Combining Types of Motion The user can command multiple types of motion (linear, circular or sinusoidal) in a single statement. The controller coordinates the motion of all axes in the statement regardless of the type of motion. Example The following illustrates a coordinated move where the X axis performs linear interpolation and the Y axis performs sinusoidal interpolation.
MAKING MOTION FOV 1.00 Differences Between FOV and VEL While a program is running, both the FOV and VEL (set target velocity for a move) commands can be set, but each affects motion differently: • FOV immediately affects all axes attached to the master. •...
MAKING MOTION • Through the Configuration Wizard. • In a program using the appropriate motion profile statements (ACC, DEC, STP or VEL). In either case, the program continues to use those motion profile values until new values are commanded. NOTE: Motion profile values in a specific program can be changed from within a different program using the MASTER (Direct Master Access) command.
Page 160
MAKING MOTION In effect, the Jog, Gear and Cam profilers act as offsets to the Coordinated Motion Profiler. The example below demonstrates the offset concept. Example Suppose an application cuts four diamond shapes from sheets of stock. The program commands motion of axes X, Y, and Z.
Page 161
MAKING MOTION To cut the third and fourth diamond shapes, jog statements again shift the starting positions for axes X and Y. After each jog statement, the coordinates of the first shape are reused. JOG ABS X5 X-2 Y1 X0 Y2 X2 Y1 X0 Y0 JOG ABS Y0...
MAKING MOTION For the third shape, the jog statement adjusts the starting point again, this time changing the X axis to 5. The Y axis has not been jogged so it stays at its previous value of +3: For the fourth shape, the jog statement adjusts the starting point for the Y axis back to 0. The X axis has not been jogged so it stays at its previous value of +5: Without offsets, coordinates for each shape would have to be calculated (and debugged).
MAKING MOTION F (set velocity in units per minute)—sets a move velocity in units/minute. The F command otherwise functions the same as the VEL command. FOV (set federate override)—sets the move velocity manually, without changing the current VEL value. Use FOV to superimpose an additional move onto existing motion.
MAKING MOTION Caution: Damage to equipment and/or serious injury to personnel may result if MULT is changed to a value inappropriate to the application. Carefully consider the effects throughout the application before applying a new value and perform a test without the load or mechanics attached. PPU (set axis pulse per unit ratio)—sets the pulses per programming unit for an axis, allowing convenient units for motion profiles such as inches, millimeters or degrees.
MAKING MOTION Calculations for the REN Command RES Details The RES command is used to zero out the primary setpoint (RES) or to preload 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.
MAKING MOTION Register Values for RES X 10 If RES is used without an axis and preload value, all the registers shown in the above figure would be zero (0). Coordinated Moves Profiler The Coordinated Moves Profiler (formerly called the current position profiler) controls motion for multiple axes using a single set of motion profile values.
Page 167
MAKING MOTION When multiple axes are moving, the Coordinated Moves Profiler computes the vector based on all the axes’ target points. The vector moves at the values set through the motion profile (ACC, DEC, STP, and VEL) and is scaled for each axis.
MAKING MOTION Jog Profiler Each axis has a dedicated Jog Profiler which can, using a set of motion profile values, control absolute, incremental, or continuous motion for that axis. It can do this independently or in conjunction with the other profilers (Cam, Gear and Coordinated Moves).
Page 169
MAKING MOTION NOTE: The ACR controller uses the Jog Profiler for jogging and homing routines. If the acceleration, deceleration, velocity and jerk values are set for jogging, those values are also used for homing. Therefore, it is a good programming practice to declare the motion profile at the beginning of every jog subroutine.
Page 170
MAKING MOTION In the lower graph (position motion profile) of the previous figure, the curve between t and t shows the change in position during the time it takes for the X axis to accelerate from zero to the target velocity. Likewise, the curve between t and t shows the change in position during deceleration to zero.
Page 171
MAKING MOTION X and Y Velocity Motion Profiles The following figure graphs the change in position for the X and Y axes. The Y axis is dashed. The overall slope of the position curve for the Y axis is steeper, reflecting its higher JOG VEL value (JOG VEL X25 Y50). Comparing the first curve after t for the axes show that a higher acceleration value presents as a more gradual curve (JOG ACC X1000 Y500).
MAKING MOTION Change in JOG VEL Value “On the Fly” Example 3 To illustrate sequential jog moves, two axes are attached to the same program. The program moves each axis an incremental distance of 10 units using two separate moves. The program waits until 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.
MAKING MOTION JOG VEL Command and Bit Profiles JOG Commands See the ACR Command Language Reference for detailed information, including necessary arguments, on JOG (single axis 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. •...
MAKING MOTION • JOG HOME (go home)—instructs the controller to search for the home position in the direction and on the axes specified. • JOG HOMVF (home final velocity)—specifies the velocity to use when the homing operation makes the final approach. •...
MAKING MOTION The drawing below illustrates JOG REN as it preloads the Coordinated Moves Profiler. JOG REN Preloads the Coordinated Moves Profiler (JOG REN X2) JOG RES Details The JOG RES command (transfer jog offset into current position) clears the Jog Profiler offset of a given axis and adds the difference to the Coordinated Moves Profiler (example: JOG RES X).
MAKING MOTION JOG RES Clears the Jog Profiler (JOG RES X) The drawing below illustrates JOG RES as it preloads the Jog Profiler. JOG RES Preloads the 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.
Page 177
MAKING MOTION pulses are scaled by a ratio that is equivalent to a gear ratio on a mechanical system. The rate at which the ratio changes is controlled by a ramping mechanism similar to a clutch or a variable speed gearbox. Simple Gear Example—Gearing to an Axis GEAR SRC X P12546 : REM Gear X to Actual Position of Axis 1.
MAKING MOTION Gearing Example—Start Gearing on High-Speed Input GEAR ACC X10000 GEAR DEC Y10000 GEAR SRC Y0 : REM Gear Y axis to ENC0. GEAR RATIO Y1 : REM Gear ratio of 1/1. X/ 200000 : REM X axis move. GEAR ON Y TRG(2, 0) OFFSET 3000 REM Mode 2, Rising Primary external.
Page 179
MAKING MOTION You can only use long integer arrays in a cam table. The table index automatically tracks which segment it is in and where it is within that segment. It also wraps around if it goes off either end of the table. The wraparound point is determined by the total length of the table that is equal to the summation of the individual segment lengths.
MAKING MOTION REM Set to 1/(PPU X) for 1/1 relation between cam scale and axis units CAM SRC X RES : REM Reset cam source to 0 CAM RES X : REM Reset cam to 0 CAM ON X : REM Start camming DWL 1 For each unit of Y moved, X would progress through the cam table, repeating as it moved and reversing if Y is reversed:...
Page 181
MAKING MOTION The Jog Profiler controls homing operations. If the acceleration, deceleration, velocity, and jerk values are set for jogging, those values are also used for homing. NOTE: It is a good programming practice to declare the motion profile at the beginning of every jog subroutine.
MAKING MOTION Finally, the program prints that the Y axis homing is successful and initiates Z channel homing (MSEEK command— marker seek operation) for axis X. When axis X has successfully completed the Z channel homing, the program prints that X axis homing is successful. PROGRAM JOG VEL X10 Y10 : REM Set axes jog parameters used during homing...
MAKING MOTION Basic Homing (Homing Backup Disabled) When the Home Backup Enable bit (Bit 24) is clear, the controller ignores the Home Negative Edge Select bit (bit 25) and Home Negative Final Direction bit (bit 26). Consequently, when the controller finds any homing edge (positive or negative), the move decelerates.
Page 184
MAKING MOTION Upon reaching the positive edge, the move is decelerated at the JOG DEC and JOG JRK command values, the direction is reversed, and another move is started in the positive direction at the JOG HOMVF velocity. As soon as the home input positive edge is reached, this last move is immediately terminated. The load is at home and the absolute position register is reset to zero.
MAKING MOTION Negative Homing (Homing Backup Enabled) Figures G through J show the homing operation for different values of the Home Negative Edge Select and Home Negative Final Direction bits—the Home Backup Enable bit is set. Figure G Homing Profile Attributes: JOG HOME X-1 Home Backup Enable (bit index 24) is set.
MAKING MOTION Limit Detection The Configuration Wizard assists with setting up the Hardware and Software Limits Detection. If limits are enabled, motion stops when the load encounters a limit. If the load hits a hardware limit, motion stops at the rate set by the HLDEC; if the load hits a software limit, motion stops at the rate set by the SLDEC. Dedicated I/O for Homing For each axis, the user can assign which inputs are used for positive and negative hardware limits as well as the input used for homing.
MAKING MOTION This syntax is still supported in ACR7000 and IPA firmware. However, you need to exercise caution with that syntax as the controller does not roll the assignment to the next block of 32 bits. For example, if HLBIT X31 is issued, the negative hardware limit and homing input are not assigned and they become imaginary inputs with a value of zero.
MAKING MOTION Setting the axis' Kill All Motion Request bit (bit 8467 for Axis 0) will kill all motion, including jogging for that axis and all other axes that are associated to that master. Example Axis 0 and Axis 1 are attached to Master 0—Axis 2 and Axis 3 are attached to Master 1. When all axes are jogging, setting bit 522 and bit 523 will have no effect on jogging.
Page 189
MAKING MOTION Select Axis Flags in the first pull-down menu, Quaternary Axis Flags in the second pull-down menu and Quaternary Axis 0 Flags in the third pull-down menu to display the Kill All Motion Request bit for Axis 0. A green LED, as circled in red below, indicates that the flag is set.
Page 190
MAKING MOTION Example: This example uses terminal commands. P00>ATTACH ATTACH MASTER0 ATTACH SLAVE0 AXIS0 "X" ATTACH SLAVE1 AXIS1 "Y" The ATTACH command will reply with information about which axes are part of the master group. P00>JOG FWD X JOG FWD X starts a continuous jog move on X axis. P00>SET 8467 SET 8467 sets the KAMR for the X axis.
MAKING MOTION 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
MAKING MOTION If a Jog move 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...
MAKING MOTION Blended (Tiered) Interpolated Moves With an interpolated move, it would be programmed as two moves but with the stop ramp STP set to 0 so it would start the second move after completing the first move. Example: ACC 10 DEC 10 STP 0 VEL 3 Y/4 Z/4 : REM Start incremental move for Y and Z at speed of 3.
Page 194
MAKING MOTION capture to take place when the source is triggered. INTCAP is also used in other AcroBASIC commands such as HSINT (high speed interruptible move) and MSEEK (marker seek). ACR7xV Capture Modes Note for the stepper axis, PMM already attaches the encoder whether selected or not and the correct settings will be applied to the ACR7000 stepper controller.
MAKING MOTION PRINT P12548 : REM Print Axis1 hardware Capture position RETURN ACR7xC Example Capture—Two Axis Positions with One Trigger Input AXIS0 INTCAP 10 CAP2 P12804 REM Mode10, CAP2 : Rising 3rd External, CAP2 uses Input24 AXIS1 INTCAP 11 CAP3 P13060 REM Mode11, CAP3 : Rising 4th External, CAP3 uses Input24 AXIS0 JOG FWD...
Page 196
MAKING MOTION When two axes are locked together using the LOCK command, their primary setpoints become the same. In other words, the two axes will get exactly the same command signal. However, in the real world, the response of the two physical motors/actuators will be 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”...
MAKING MOTION X/20 : REM Start motion axis X, axis Y also moves due to lock. UNLOCK Y : REM Unlock axis Y. When the UNLOCK command is issued, that axis’ position will be 0 and will need to be reset. The difference between the two positions should be stored and the unlocked axis should be reset to the main axis position less the offset.
MAKING MOTION REM shortest distance. External Time Base By default, motion’s time base is set to the servo clock. The SRC command can be used to change to an external timebase, such as an encoder or parameter. This is done with the SRC (source) command. This is similar to CAM SRC or GEAR SRC, but those are only for CAM motion or GEAR motion.
MAKING MOTION backlash compensation) to set the compensation, or, without an argument, to display the current setting for an axis. Ballscrew Profiler: Used to compensate for non-linear position error introduced by mechanical ballscrews and gearboxes. Use the BSC command (ballscrew compensation) to initialize and control ballscrew compensation for an axis.
MAKING MOTION Following Error Ballscrew Compensation Ballscrew compensation is primarily used to compensate for nonlinear position error introduced by mechanical ballscrews and linear encoders. Ballscrew commands are identical to cam commands. Both ballscrews and cams can be active at the same time, each with different settings and offset tables. The main difference between ballscrew and electronic cam is that the default source for a ballscrew points to the primary setpoint, therefore the BSC SRC command is normally not required.
MAKING MOTION All entries in the long array used to designate a BSC segment MUST be made in encoder pulses. LA0(0)=100 : REM Array entry in encoder pulses, 100 micron. When PPU is specified for the axis that is used as the ballscrew, axis segment lengths must still be entered in encoder pulses.
Page 202
MAKING MOTION BSC Using Slope Correction Value Slope value 34.3 µm/m. Value at 1450 mm: 34.3 [µm/m] * 1.45 [m] = 49.6 [µm] DIM LA(1) : REM Dimensions one long array for correction values. DIM LA0(2) : REM Dimension array zero with 2 data points. LA0(0)=0 : REM Set first array value (negative end of travel) to zero.
Page 204
MAKING MOTION LA0(53)=44 LA0(54)=48 LA0(55)=51 LA0(56)=54 LA0(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.
MAKING MOTION 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.
Page 206
MAKING MOTION ATTACH SLAVE1 AXIS1 "Y" PPU X 2000 Y 2000 : REM Scale commands to engineering units ACC 100 DEC 100 STP 0 VEL 0 INVK PROG7 : REM Tell MASTER0 where the transformations are. INVK ON : REM Turn on the Kinematics. PROGRAM _start X / 0.2...
WRITING ACROBASIC PROGRAMS Writing AcroBasic Programs AcroBASIC programming is text-based and top down. When writing programs, use subroutines from a main routine. This makes it easier to add, read and test new sections of code rather than having to troubleshoot a large multi-page program.
Xpress HMI with ACR7000 • Xpress HMI with IPA Note that these samples and others are available for download and use from Parker Community Knowledge Base, also linked from ACR7000 product page. Sample Motion Program Sample two-axis motion program with main program using subroutines for enable, home, interpolated motion and jog moves with full comments.
Page 210
WRITING ACROBASIC PROGRAMS Similar samples for one-axis, three-axis and four-axis systems are available on the Knowledge Base. PROGRAM PBOOT REM PBOOT assigns the program automatically on powerup or reboot. REM PBOOT has to be the first command within the program. REM This is a sample program showing enabling, homing and two types REM of moves (MOV and JOG).
WRITING ACROBASIC PROGRAMS GOSUB JogINCMotion : REM Subroutine for incremental jog moves. GOSUB JogCOMBOMotion 'GOTO MAIN : REM Remove the ' to run this continuously. : REM Ends the program. Enable Drives Subroutine _ENABLEDRIVE DRIVE ON X Y : REM TURNS ON OUTPUT TO ENABLE DRIVE. INH 8465(3) : REM Wait until drive enables or 3 seconds.
WRITING ACROBASIC PROGRAMS REM for Prog0. RETURN Incremental Interpolated Motion Subroutine ' Subroutine of Basic Incremental Moves _BasicINCMotion ' The / is incremental, from wherever the motor currently is. X/-8 X/2 Y/-3 X/-2 Y/1 INH -516 : REM Inhibit program until incremental moves are done. REM Bit 516 is In Motion bit for Master0 - the trajectory calculator REM for Prog0.
WRITING ACROBASIC PROGRAMS JOG ABS X-2 Y-2 INH -792 INH -824 JOG ABS Y-1 INH -824 JOG ABS X0 Y0 INH -792 INH -824 RETURN Incremental Jog Moves Subroutine ' Subroutine of Jog Incremental Moves _JogINCMotion JOG INC X-8 INH -792 : REM Inhibit program until jog move done.
WRITING ACROBASIC PROGRAMS 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 UNSUCCESSFUL"...
WRITING ACROBASIC PROGRAMS WHILE (((NOT BIT 16134) AND (NOT BIT 16135)) AND ((NOT BIT 16166) AND (NOT Line BIT 16167))) Wraps WEND ' Prints Information regarding Y Axis homing. IF (BIT 16166) THEN PRINT "Y HOMING SUCCESSFUL" IF (BIT 16167) THEN PRINT "Y HOMING UNSUCCESSFUL" ' If X Axis homing successful, find X encoder ref marker.
Page 216
WRITING ACROBASIC PROGRAMS JOG DEC X500 : REM Set jog decel for homing. JOG VEL X100 : REM Set jog velocity for homing. JOG HOMVF X25 : REM Set jog final velocity for homing. JOG ACC Y300 : REM Set jog accel for homing. JOG DEC Y300 : REM Set jog decel for homing.
WRITING ACROBASIC PROGRAMS REM Rising First Marker - Z Mark, ENC1 REM Hardware Capture Parameter - P12548 REM Capture Complete Flag - BIT809 REM Z axis ballscrew is 5 mm per motor rev, so command a move of 5.5. MSEEK Z(5.5,0) REM Rising First Marker - Z Mark, ENC2 REM Hardware Capture Parameter - P12804 REM Capture Complete Flag - BIT841...
WRITING ACROBASIC PROGRAMS PRINT #1, "(A)pple, (B)anana, (C)oconut" PRINT #1, "I would like to have a"; ' Infinite WHILE loop if they do not enter anything. WHILE ($V0 = "") $V0 = UCASE$(INKEY$(1)) REM Stores Keyboard entry into String Variable 0 WEND IF ($V0 = "A") THEN PRINT #1, "n Apple"...
WRITING ACROBASIC PROGRAMS GOTO InputPoints ENDIF DIM DA0(LV1) : REM Dimension array - number of points to teach. ' Use input 24 to tell controller to collect a teach point. ' Use a FOR/TO/STEP/NEXT loop to teach points into an array. FOR LV0 = 0 TO (LV1-1) STEP 1 PRINT "TURN MOTOR, THEN HIT INPUT 24 TO TEACH POINT"...
Page 220
WRITING ACROBASIC PROGRAMS ACC 10 DEC 10 STP 10 VEL 1 DRIVE ON Y Z DWL 0.1 RES Y Z GOSUB SetupArrays CAM DIM Z2 : REM Define 2 cam segments REM Define cam segment range and source CAM SEG Z(0,(P12631*1/3),LA0) CAM SEG Z(1,(P12631*2/3),LA1) CAM SRC Z1 : REM Define cam source as ENC1...
' To check EthernetIP status in terminal emulator, use DIAG ETHIP. PROGRAM PBOOT : REM LRUN to troubleshoot REM Sample 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))
BIT8497 PROGRAM PBOOT : REM LRUN to troubleshoot. REM Sample code for IPA or ACR7000 series as scanner to Wago 750 REM series Ethernet/IP bus coupler. REM Not compatible with ACR9000 or other 3rd party Ethernet/IP devices. P39424=((192<<24)+(168<<16)+(100<<8)+(2)) REM IP=192.168.100.2 Node 0 verify in Status Panels > EtherNet/IP.
Page 223
WRITING ACROBASIC PROGRAMS IF (XanalogIn < (XjoyRest - Deadband)) THEN JOG REV X : PRINT "JOG X Line SPEED",((XanalogIn-XjoyRest)*-1) Wraps IF ((XanalogIn < (XjoyRest + Deadband)) AND (XanalogIn > (XjoyRest - Line Deadband))) THEN JOG OFF X Wraps JOG VEL X (absf(XanalogIn-XjoyRest)) IF (NOT Yon) THEN PRINT "Y AYIS NOT ON"...
WRITING ACROBASIC PROGRAMS SET 16672 : REM START EIPIO WHILE (NOT (BIT16681 OR BIT16682)) WEND IF (BIT16681) REM START SUCCESS PRINT "Start success!" ENDIF IF (BIT16682) REM START FAILED PRINT "Start failed!" ENDIF RETURN ENDP Capture Data PROGRAM REM Program to set up multi-channel high-speed data capture. REM Initialize local long variables.
WRITING ACROBASIC PROGRAMS Peer-to-Peer ' EtherNet/IP Peer-to-Peer sample ' Valid for ACR7000 or IPA (not ACR9000). ' To check EtherNet/IP status in terminal, use DIAG ETHIP. ' To check EtherNet/IP status at peer in terminal, use CIP. PROGRAM PBOOT GOSUB ConfigScanner _ConfigScanner P37392 = 0 : REM # I/O nodes.
Page 226
WRITING ACROBASIC PROGRAMS PROGRAM CLEAR DIM LV7 : REM Dimension/allocation 7 long local variables. LV1=0 LV3=4 : REM ENTER THE NUMBER OF AXES USED. ?" Dim lists memory allocation for programs, streams, globals and defines. must be done at sys prompt" : REM Must be done at sys prompt.
WRITING ACROBASIC PROGRAMS ? "AXIS", LV1, " Positive Soft Limit Enable", BIT(16150+LV1*32) ? "AXIS", LV1, " Negative Soft Limit Enable", BIT(16151+LV1*32) ?"" ?"" REM This command enables the servo loop associated with an axis without using REM the bit flag designated for this purpose. ? "AXIS", LV1, "...
WRITING ACROBASIC PROGRAMS _HOMEHARDSTOP JOG REV X WHILE (BIT 792) LV0=P6144 DWL 0.1 LV1=P6144 IF (LV1>=LV0) JOG OFF X ENDIF WEND JOG INC X 1 : REM MOVE 1 REV OFF HARDSTOP INH -792 JOG RES X : REM RESET THIS JOG POSITION AS 0 RES X : REM RESET THE CURRENT POSITION AS 0 PRINT "AT HOME"...
WRITING ACROBASIC PROGRAMS minutes = (seconds - ExcSeconds) / 60 REM Extract any minutes less than a full hour. ExcMinutes = minutes MOD 60 REM Extract the hour portion. REM Remove excess minutes and convert to full hours. hours = (minutes - ExcMinutes) /60 REM Remove any hours less than a full day.
WRITING ACROBASIC PROGRAMS REM Kill has been cleared, restart Program 0. RUN PROG0 ENDIF GOTO LOOP _CheckTorqueEnable IF (BIT10011) REM Torque enable inputs mismatch. REM Requires a HARD power cycle. ? "TORQUE ENABLE HEALTH EVENT" ? " CYCLE POWER" GOTO FaultLatched ENDIF WHILE (BIT10010) REM WAIT HERE UNTIL THE INPUT IS CLOSED...
Xpress HMI with ACR7000 The Xpress HMI is a compatible HMI for the ACR7000 for applications that need an operator touchscreen interface. This sample includes 2-axis jog and teach panels. Click here for a complete sample on parker.com. ACR Programmer’s Guide 231...
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. 232 ACR Programmer’s Guide...
WRITING ACROBASIC PROGRAMS Testing Programs PMM’s Panels and Oscilloscopes give visual indications of the controller status. The Motion Status Panel lists the program line numbers as well as axis positions, program status and common errors. This same information is in the Bit Status Panel and Numeric Status Panel but placed in a single panel.
WRITING ACROBASIC PROGRAMS Graphing with Oscilloscopes PMM includes a 4-channel oscilloscope and you 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 ACR Programmer’s Guide 235...
To determine the correct line numbers, go into the Terminal Emulator in Parker Motion Manager and click List Line Number. This turns on line numbering with the Force Line Numbers with List bit (bit 5651) and then sends a LIST command.
Page 237
WRITING ACROBASIC PROGRAMS certain lines are executed or not in case of 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 <...
BINARY HOST INTERFACE During binary transfers to the controller, the delay between bytes must be no more than the communications timeout setting for the given channel. If the timeout activates, the transfer is thrown out and the channel goes back to waiting for a normal character or a binary header ID. The default communication timeout is 50 milliseconds.
BINARY HOST INTERFACE Transmitting If the character to be sent is greater than 0x7F, the character is 'ANDed' with 0x7F and proceeded with the '&' character. Note that the AND may result in a control code which must then be handled by control character prefixing.
BINARY HOST INTERFACE Parameter Access The following is a list of groups and what the isolation mask will isolate: Group Description Isolation Usage 0x10 Flag Parameters Eight consecutive parameters 0x18 Encoder Parameters ENC0-ENC15 0x19 DAC parameters DAC0-DAC7 0x1A PLC parameters PLC0–PLC7 0x1B Miscellaneous...
BINARY HOST INTERFACE Binary Get Long This packet gets a single parameter from the controller. The parameter index is a two-byte value sent low-order byte first. The parameter value in the receive packet is a four-byte long integer received low-order byte first. Transmit Packet Data Field Data Type...
BINARY HOST INTERFACE Transmit Packet Data Field Data Type Description Byte 0 BYTE Header ID (0x00) Byte 1 BYTE Packet ID (0x8A) Byte 2-3 WORD Parameter Index Receive Packet Data Field Data Type Description Byte 0 BYTE Header ID (0x00) Byte 1 BYTE Packet ID (0x8A)
Page 246
BINARY HOST INTERFACE NOTE: Refer to Binary Global Parameter Access Note at end of Binary Host Interface section for details. The command returns the header and peek address followed by the requested data. Transmit Packet Data Field Description Byte 0 Header ID (0x00) Byte 1 Packet ID (0x90)
BINARY HOST INTERFACE Usage Example This example peeks at three words, starting at peek address 0x404500. NOTE: Addresses shown are for example only. Addresses will vary from controller to controller depending on system memory allocation. Fields: Header Address Data0 Data1 Data2 Output: 00 90 00 03...
BINARY HOST INTERFACE Data Field Description Long N Poke Data (Count - 1) Receive Packet None. Conversion Codes Code Source Destination 0x00 LONG LONG 0x01 IEEE32 FP64 0x02 IEEE32 FP32 Usage Example This example pokes data into three words, starting at poke address 0x405000. NOTE: Addresses shown are for example only.
BINARY HOST INTERFACE Transmit Packet Data Field Description Byte 0 Header ID (0x00) Byte 1 Packet ID (0x92) Byte 2 Program Number Byte 3 Parameter Code Receive Packet Data Field Description Byte 0 Header ID (0x00) Byte 1 Packet ID (0x92) Byte 2 Program Number Byte 3...
BINARY HOST INTERFACE Fields: Header Parameter Address Output: 00 92 05 02 Input: 00 92 05 02 00 80 40 00 Starting address of the Single Variable information for Program 5: Address: 0x408000 Binary Parameter Address Command A binary parameter address command consists of a four-byte header containing a parameter index. The command returns the header followed by the address of the parameter.
BINARY HOST INTERFACE Current Position Parameter Address: AXIS0: 0x405031 Binary Mask Command A binary mask command consists of a four-byte header followed by an address and two bit masks to be combined with the data at that address. There is no information returned from this command. The address must point to a long integer storage area.
BINARY HOST INTERFACE Binary Parameter Mask Command A binary parameter mask command consists of a four-byte header followed by two bit masks to be combined with a system parameter. There is no information returned from this command. The parameter index in the header must be a long integer.
Page 253
BINARY HOST INTERFACE Data Field Data Type Description Head 02 BYTE Header Code 1 Head 03 BYTE Header Code 2 Head 04 BYTE Header Code 3 Head 05 BYTE Header Code 4 Head 06 BYTE Header Code 5 Head 07 BYTE Header Code 6 Head 08...
BINARY HOST INTERFACE Data Field Data Type Description Data 19 LONG* Primary Center Data 20 LONG* Secondary Center Data 21 IEEE32 Primary Scaling or NURB/Spline Knot Data 22 IEEE32 Secondary Scaling or NURB Weight * These fields are in IEEE32 format if bit 2 of header code 3 is set. Header Code 0 There are two versions defined for Header Code 0 based on Secondary Master Flag Bit Index 5, Enable Rapid Move Modes.
Page 255
BINARY HOST INTERFACE Data Data Type Description Field Bit 1 FOV/ROV Lockout Forces FOV or ROV to 1.0 for this move Bit 2 Move Mode Bit 0 Selects the move mode for this move along with Header Code Bit 0. Bit 3 Code 3 Present Header contains "Header Code 3"...
Page 256
BINARY HOST INTERFACE Data Data Type Description Field Bit 2 Slave 2 Present Bit 3 Slave 3 Present Bit 4 Slave 4 Present Bit 5 Slave 5 Present Bit 6 Slave 6 Present Bit 7 Slave 7 Present Header Code 3 Data Data Type Description...
Page 257
BINARY HOST INTERFACE Bit 4 Reserved Reserved Bit 5 Bit 6 Bit 7 Header Code 5 Data Data Type Description Field Bit 0 Reserved Reserved Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Header Code 6 Data Data Type Description...
BINARY HOST INTERFACE Header Code 7 Data Data Type Description Field Bit 0 Reserved Reserved Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 The following Move Modes definition applies to Header Code 0 used with the Master Enable Rapid Move Modes flag set.
Page 259
BINARY HOST INTERFACE Example 2 The following illustrates Move Mode 1—Feed Cornering: Example 3 The following illustrates Move Mode 2—Feed Stopping: ACR Programmer’s Guide 259...
BINARY HOST INTERFACE Example 4 The following illustrates Move Mode 3—Rapid: Linear Moves The bits in header code 2 indicate which target positions are contained in the binary move packet. If the "incremental target" bit in header code 3 is set, the targets are relative to the current target positions of the slaves;...
BINARY HOST INTERFACE Arc Plane Primary Axis Secondary Axis Slave 0 Slave 1 Slave 1 Slave 2 Slave 2 Slave 0 Reserved Reserved The "arc direction" bit in header code 1 indicates the direction of the arc relative to the primary and secondary axes.
BINARY HOST INTERFACE Binary CLR Data Type Description Byte 0 Header ID (0x1D) Byte 1 Index Byte 0 Byte 2 Index Byte 1 Byte 3 0x00, present for backwards compatibility. Usage Example Binary Output Description 1C 08 02 Set bit 520 ( 0x0208 ) 1D 20 00 Clear bit 32 ( 0x0010 ) Binary FOV Command...
Page 263
BINARY HOST INTERFACE Data Type Description Byte 7 FOV Byte 3 Header Bit Mask Data Description Type 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...
BINARY HOST INTERFACE 16 Master Header Bit Mask, Part 2 Data Type Description Bit 8 Master 8 Affected Bit 9 Master 9 Affected Bit 10 Master 10 Affected Bit 11 Master 11 Affected Bit 12 Master 12 Affected Bit 13 Master 13 Affected Bit 14 Master 14 Affected...
Page 265
BINARY HOST INTERFACE Binary Format Data Type Description Byte 0 Header ID (0x1F) Byte 1 Header Bit Mask Byte 2 16 Master Header Bit Mask, Part 1 Byte 3 16 Master Header Bit Mask, Part 2 Byte 4 ROV Byte 0 Byte 5 ROV Byte 1 Byte 6...
BINARY HOST INTERFACE Data Type Description 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 2 Data Type Description Bit 8...
BINARY HOST INTERFACE Description Global user variables (see Variable Memory Allocation) can be read and set using the Binary Peek and Poke Command interface. NOTE: A maximum word count of 255 can be used when using the Binary Peek and Poke Command interface.
Page 268
BINARY HOST INTERFACE 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). 268 ACR Programmer’s Guide...
Once the problem is isolated, refer to the table below, Common Problems and Their Solutions. If instructed to contact Parker Technical Assistance, please refer to Technical Assistance for contact information.
Page 271
If the LED does not turn green, contact Parker Technical Assistance. The unit is likely damaged. Power status Controller encountered error during boot Contact Parker Technical Assistance.
Page 272
TROUBLESHOOTING PROBLEM CAUSE / VERIFICATION SOLUTION Communication Wrong IP address configured in PMM Enter in correct ACR IP address in Error: 11010 communication window. controller’s connection window. Check IPA’s dial switches for IP address. In PMM, click Ping. If ping fails, see Connecting to the Controller.
Page 273
PROBLEM CAUSE / VERIFICATION SOLUTION Axis Enable output or Axis Fault input are Use Configuration Wizard to select Parker wrong. drive used, or select Other and set NO or NC for Enable and Fault. Compax3 with ACR7xC: Drive X4/3 STO C3 X4/3 requires 24 VDC to enable.
Page 274
TROUBLESHOOTING PROBLEM CAUSE / VERIFICATION SOLUTION Check if the tuning gains are set too low: Status Panels → Numeric Status → Axis → Parameters Servo Parameters. Torque limit is not set correctly. Example: TLM X1 indicates torque is limited to 10% of drive motor capacity for axis X. Verify torque limit setting: Status Panels →...
Page 275
TROUBLESHOOTING PROBLEM CAUSE / VERIFICATION SOLUTION Check PMM Configuration Wizard’s EOT polarity is correct. Master Kill All Moves request is active. Clear the appropriate Master Kill All Moves Request Bit. Verify: Status Panels → Bit Status → Master Flags. Also clear all associated Slave Kill All Motion Request Bits.
Page 276
TROUBLESHOOTING PROBLEM CAUSE / VERIFICATION SOLUTION Verify Torque Limit setting by Status Panels Example: TLM X1 indicates torque is limited → Numeric Status → Axis Parameters → to 10% of drive motor capacity for axis X. → Limit Parameters Plus/Minus Torque Limit. Improper Feedback device counts are missing.
Page 277
TROUBLESHOOTING PROBLEM CAUSE / VERIFICATION SOLUTION Motor current too high for no heat-sink. Lower motor current for steady state case temperature. Stepper motors Contamination/dry mechanics. Remove motor to confirm it is the make audible mechanics. Check gearhead for noise contamination. Check leadscrew and square rail bearings for lubricant.
Page 278
TROUBLESHOOTING PROBLEM CAUSE / VERIFICATION SOLUTION → → → → Verify: Status Panels Bit Status Axis Request Bits. PMM Status Panels Motion Flags → Quinary Axis Flags. Each axis is Status → Clear All Kills. indicated by Bit “Positive/Negative Soft Limit Encountered.”...
Page 279
TROUBLESHOOTING PROBLEM CAUSE / VERIFICATION SOLUTION Stepper motor Confirm other programs are not running See Status Panels → Motion Status Panel. Also → moving at or other motion is not being commanded. see Status Panels Servo Loop Status. standstill If step motor has encoder and excess Within program, at that section, consider position error is set in Fault menu in turning PM off or adjusting Position...
APPENDIX A: CONNECTING TO THE CONTROLLER Connecting to the Controller Connect one end of an Ethernet cable to the PC. Connect the other end to one of the controller’s two RJ-45 socket connectors. The two RJ-45 sockets can be used interchangeably and have the same IP address. Turn on Control Power to the ACR/IPA.
Page 282
APPENDIX A: CONNECTING TO THE CONTROLLER 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”. Click Properties.
Page 283
APPENDIX A: CONNECTING TO THE CONTROLLER Select Internet Protocol Version 4 (TCP/IPv4). Click Properties. ACR Programmer’s Guide 283...
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 Ethernet is set up correctly, the Terminal Emulator will report the controller’s firmware version information.
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 default, we recommend labeling the controller with the new IP address on the front or side of the unit.
The IP address of the ACR controller is usually at or near the top. IP addresses for IPAs are highlighted in orange, but this is not done for ACR7000 series controllers. Click Refresh to scan again or click Ok to select that IP address for use in the project.
APPENDIX A: CONNECTING TO THE CONTROLLER Resetting the ACR74T via Hardware This procedure is a way to recover the ACR74T in the event the IP address cannot be found. The procedure wipes memory on the controller and is equivalent to a FLASH RES. Remove power and disconnect all cables.
APPENDIX B: ETHERNET BASICS Ethernet Basics The appendix contains supplemental materials not directly related to any specific ACR series controller discussion. IP Addresses, Subnets and Subnet Masks The factory assigns an IP address of 192.168.100.1 and a subnet mask of 255.255.255.0 to each controller. Before adding the controller to your network, assign it an IP address and subnet mask appropriate for your network.
Page 290
APPENDIX B: ETHERNET BASICS Before a computer or router can send data, it has to identify the network ID through the address class. Each class is assigned a range of numbers. Address First octet in Excluded from Internet, allowed Class dotted decimal for Intranet format begins...
APPENDIX B: ETHERNET BASICS Subnets As networks increase in size, it becomes more complex to deliver information. Subnets provide a logical way to break apart network addresses into smaller, more manageable groups. There are additional benefits including more efficient communications between devices and increases to the overall network capacity. Subnet IDs When sending data from one host to another, routers use the network ID (see above) in the IP address to locate the network.
Page 292
APPENDIX B: ETHERNET BASICS What subnet mask to use depends on your network configuration and address class. Where the host ID appears in the IP address, use a zero in the subnet mask. And where the network ID and subnet ID appear, use 255 in the subnet mask.
APPENDIX C: SERVO PID TUNING Servo PID Tuning PMM’s Servo Tuner helps you tune each analog torque servo drive to determine the gains for your application. This can be done after the Configuration Wizard has been completed and downloaded. For an introduction to PMM’s Servo Tuner, click here. Purpose of Tuning The tuning process determines the PID gains (see explanations below) that provide optimum servo performance for your electromechanical system (servo motor with attached load).
Page 295
APPENDIX C: SERVO PID TUNING Adjust the Proportional and Derivative gains per the diagram below, monitoring the Following Error. NOTE: Be ready to disable or power down the system in event of uncontrolled motion. Torque Limit can be used to limit the DAC output to the servo. The default is 10, which is the full ±10 VDC output range for the servo output to the drive.
APPENDIX C: SERVO PID TUNING Explanation of Tuning Gains Proportional Gain (PGAIN) This command modifies the value used in the PID algorithm to control proportional gain. The default gain is 0.0024414 (10 volts at 4096 pulses) for all axes. Units are volt/pulse. Derivative Gain (DGAIN) This command modifies the value used in the PID algorithm to control derivative gain.
APPENDIX C: SERVO PID TUNING Can’t reach speed? It could be a lack of torque from the motor. Try slowing down acceleration ramp. Your power supply could be pulling down if it does not have the capacitance or is undersized for the current needed.
APPENDIX C: SERVO PID TUNING Feedback Velocity (FBVEL) Sets the velocity feedback gain to amplify the rate of change of feedback. Only for analog feedback systems or dual-feedback loop systems (motor feedback for velocity and load-mounted encoder for position). For standard servo drives, this should be left at 0.0.
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW PMM Improvements Over ACR-View The ACR7000 family is supported by a new software tool, Parker Motion Manager (PMM). Parker Motion Manager combines the best of ACR-View and years of user feedback in a modern, user-friendly and scalable software development environment.
Page 302
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW 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 →...
Page 303
With ACR-View, users would have to create a new project, select the controller and then upload. Improvement 4—With Parker Motion Manager, projects are now stored as a single file (.pprj), making it easier to transfer and share (below, left). In ACR-View, projects were a folder with separate files for the .8k programs, configuration, etc.
Page 304
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW 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. 304 ACR Programmer’s Guide...
Page 305
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW 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. ACR Programmer’s Guide 305...
Page 306
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW Improvement 8—Defines 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
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW 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 Improvement 11—Same motor on multiple axis? Quickly populate the Configuration using Axis Copy (right-click on Axis). 308 ACR Programmer’s Guide...
Page 309
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW Improvement 12—Testing code and want to remove a section of code (comment out multiple lines)? Rather than typing REM or ' at the beginning of each line, select the lines and use the Toolbar icon highlighted below. Improvement 13—In ACR-View, when doing a Find (CTRL+F), the first instance was found and then the focus was set on the program editor.
Page 310
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW Improvement 14—Improved Servo Tuning screen and graphing! Channel defaults are set for standard motion tuning. Auto-Scaling is turned on, 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.
Page 311
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW What 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
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW Improvement 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
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW 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! ACR Programmer’s Guide 313...
Page 314
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW 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. 314 ACR Programmer’s Guide...
Page 315
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW Improvement 19—User Parameters and User Bits are now in the Numeric and Bit Status panels! This includes user parameters P0-P4095, user non-volatile 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.
Page 316
APPENDIX D: PMM IMPROVEMENTS OVER ACR-VIEW Improvement 23—By default, PMM is set for 100 Defines, allowing users to name their bits/parameters. The default for ACR-View was 20. Improvement 24—All programs have memory allocated by default, whereas in ACR-View, only Program 0 and Program 15 had memory allocated by default.
The same axis I/O cables can be used, allowing users to easily upgrade systems. The same cables to connect to Parker drives all work with the 7000 series controller: P series, Aries, Compax3, Gemini Servo and Stepper, Zeta, E-AC, etc. The 7000 controller supports SSI feedback on its axis connectors just like the 9000.
Page 319
APPENDIX E: ACR7XC/ACR9000 COMPARISON New and improved software, Parker Motion Manager, supports the ACR7000 series controller, integrated stepper controller and integrated servo controllers. Anyone familiar with ACR-View will be able to pick it up very quickly since it has a similar look and feel, but we have taken out what is not needed and made drastic improvements to the usability.
APPENDIX F: ACR7XV/IPA DIFFERENCES ACR7xV/IPA Differences The 7000 series integrated drive/controller products share aspects of the 9000 multi-axis controller and the IPA integrated servo drive/controller. All the 9000 commands, parameters, and flags that are used to control programs, masters and axes are present on the 7000 series. These include the position loop servo gain command and parameters specifically.
APPENDIX G: 6K TO ACR COMMAND REFERENCE 6K to ACR Command Reference This section covers common 6K commands and their closest ACR equivalents where applicable. The ACR uses a different architecture than the ACR, so this table should be taken as suggestion only. NOTE: "P"...
Page 324
APPENDIX G: 6K TO ACR COMMAND REFERENCE 6K Command ACR Command Shorthand ACR Command Notes Homing HOMZ MSEEK Home to a Z-channel (mode 0). HOM0, HOM1 JOG HOME X1, JOG Home to a trigger input (mode 2). HOME X-1, MSEEK HOMVF HOMA JOG HOMVF, JOG ACC JOG JRK, JOG DEC...
Page 325
APPENDIX G: 6K TO ACR COMMAND REFERENCE 6K Command ACR Command Shorthand ACR Command Notes JOG DEC Scaled by PPU to user units/second Scaled by PPU to user units/second Scaled by PPU to user units/second^3. Pure S-Curve JOG VEL Scaled by PPU to user units/second. AA/ADA JOG JRK Scaled by PPU to user units/second...
Page 326
APPENDIX G: 6K TO ACR COMMAND REFERENCE 6K Command ACR Command Shorthand ACR Command Notes No equivalent TARC Axes must have same PPU. Interpolated Motion Trajectory Scaled by PPU to user units/second DEC/STP Scaled by PPU to user units/second Scaled by PPU to user units/second PAA/PADA Scaled by PPU to user units/second Pure S-curve is ACC**2/VEL.
Page 328
APPENDIX G: 6K TO ACR COMMAND REFERENCE 6K Command ACR Command Shorthand ACR Command Notes Setpoint) with Backlash and Ballscrew Compensation. 1TPE ?P12290 Actual Position in raw counts. Depends upon ENC SRC Following Error in raw counts. 1TPER ?P12291 Hardware Position capture in raw counts.
Page 329
APPENDIX G: 6K TO ACR COMMAND REFERENCE 6K Command ACR Command Shorthand ACR Command Notes AXIS0 DRIVE RES: toggles axis' reset output. IO Control OUT1 SET BIT 32 SET32 or Could also use P4097 = P4097 OR BIT32 = 1 OUT0 CLR BIT 32 CLR32 or...
Page 330
APPENDIX G: 6K TO ACR COMMAND REFERENCE 6K Command ACR Command Shorthand ACR Command Notes ENCSND0 ENC0 SRC0 Quadrature encoder mode. ENCSND1 ENC0 SRC1 Step and direction mode. CMDDIR BIT8455 Could also use ENC MULT and DAC GAIN together (required for ACR7xC).
APPENDIX H: ACR7000 BITS AND PARAMETERS ACR7000 Bits and Parameters This section covers bits and parameters added to the ACR firmware specifically to handle new hardware features on the ACR7000. Relevant bits and parameters therefore vary by product. ACR7xT Control and Status Bits The control, status, fault and warning bits are in the Stepper Flags.
APPENDIX H: ACR7000 BITS AND PARAMETERS P4584 P4585 P4586 P4587 Motor short to ground fault 15640 15672 15704 15736 Over temperature warning 15641 15673 15705 15737 Over temperature fault 15642 15674 15706 15738 Stall threshold warning 15643 15675 15707 15739 Under voltage 15644 15676...
APPENDIX H: ACR7000 BITS AND PARAMETERS Drive Register read value (for debug) P7949 Value reported as status Drive Register tuning value (for tuning) P7950 73765 0-131071 (0x1ffff) Drive Register raw status read P7951 16 or 20 bit number The table below shows the possible values returned in P7947 above and their meanings. Error description Value No error...
Page 335
APPENDIX H: ACR7000 BITS AND PARAMETERS 28707 Motor Inductance 5.68 5.68 Maximum value of motor inductance. 28708 Motor Inductance None 0.75 0.75 Minimum motor inductance Factor divided by the maximum motor inductance. 28709 Motor Maximum °C Maximum allowable motor Temperature winding temperature.
Page 336
APPENDIX H: ACR7000 BITS AND PARAMETERS 28678 Invert Halls None Controls the logic sense of the Hall sensors. Set = 1 to invert the halls. 28775 None Hall Only Commutation with Commutation incremental encoders: 0 = hall, 2=DC brush mode. 28719 Motor Ambient °C...
Page 337
APPENDIX H: ACR7000 BITS AND PARAMETERS 28772 Serial Encoder Valid 65535 65535 214783647 Number of supported multi Turns turns for a serial encoder 28800 BiSS Single Turn Number of single turn bits bits in BiSS frame 28801 BiSS Multi Turn bits Number of multi turn bits in BiSS frame 28802...
APPENDIX H: ACR7000 BITS AND PARAMETERS ACR7xV Status Parameters The usual scheme for P parameters applies for eight axes here. So Axis1 will be Axis 0 +256, axis2 is +512, etc. Parameter Name Axis0 Axis1 Axis2 Axis3 Axis4 Axis5 Axis6 Axis7 Drive Continuous Current P28736...
Page 339
APPENDIX H: ACR7000 BITS AND PARAMETERS Parameter Name Mask 0x01 0x02 0x04 0x08 0x010 0x20 0x40 0x80 Flag Parameter P4392 P4393 P4394 P4395 P4396 P4397 P4398 P4399 Code=0x10; Index=0x04 Axis Number Status Flags Index 9472 9504 9536 9568 9600 9632 9664 9696 Motor Configuration...
Need help?
Do you have a question about the ACR7000 Series and is the answer not in the manual?
Questions and answers