^1 SOFTWARE REFERENCE MANUAL ^2 PMAC / PMAC2 ^3 Programmable Multi-Axis Controller ^4 3Ax-602204-xSxx ^5 January 18, 2008 Single Source Machine Control Power // Flexibility // Ease of Use 21314 Lassen Street Chatsworth, CA 91311 // Tel. (818) 998-2095 Fax. (818) 998-7807 // www.deltatau.
Copyright Information © 2008 Delta Tau Data Systems, Inc. All rights reserved. This document is furnished for the customers of Delta Tau Data Systems, Inc. Other uses are unauthorized without written permission of Delta Tau Data Systems, Inc. Information contained in this manual may be updated from time-to-time due to product improvements, etc., and may not conform in every respect to former issues. To report errors or inconsistencies, call or email: Delta Tau Data Systems, Inc.
REVISION HISTORY REV. 1 2 DESCRIPTION INCORPORATED V1.17C FIRMWARE ADDENDUM CORRECTION TO DEFINE ROTARY CMND, P. 215 DATE CHG APPVD 09/12/06 CP C. WILSON 01/18/08 CP S.
PMAC/PMAC2 Software Reference Manual Table of Contents PMAC COMMAND AND VARIABLE SUMMARY ..............................................................................................1 Notes .........................................................................................................................................................................1 Definitions..........................................................................................................................................
PMAC/PMAC2 Software Reference Manual Channel n Hardware Setup I-Variables .............................................................................................................14 Ultra-Lite/Supplemental Channel Hardware Setup I-Variables.........................................................................14 MACRO Support I-Variables..................................................................................................................................15 PMAC Error Code Summary ..........
PMAC/PMAC2 Software Reference Manual I69 Modbus TCP Software Control Panel Start Address.............................................................................48 I70 – I77 Analog Table Setup Lines..............................................................................................................48 I8x Motor x Third-Resolver Gear Ratio.......................................................................................................50 I89 Cutter Comp Outside Corner Break Point............
PMAC/PMAC2 Software Reference Manual Ix58 Motor x Integrated Current Limit......................................................................................................93 Ix59 Motor x User-Written Servo/Phase Enable .......................................................................................94 Ix60 Motor x Servo Cycle Period Extension .............................................................................................95 Ix61 Motor x Current Loop Integral Gain {PMAC2 only} .......
PMAC/PMAC2 Software Reference Manual I902 Servo Clock Frequency Control {PMAC2 only} ............................................................................133 I903 Hardware Clock Control Channels 1-4 {PMAC2 only} .................................................................134 I904 PWM 1-4 Deadtime / PFM 1-4 Pulse Width Control {PMAC2 only}............................................136 I905 DAC 1-4 Strobe Word {PMAC2 only}...........................................................................
PMAC/PMAC2 Software Reference Manual ...............................................................................................................................................168 ................................................................................................................................................168 ...............................................................................................................................................
PMAC/PMAC2 Software Reference Manual DEFINE TCOMP..............................................................................................................................................217 DEFINE UBUFFER .........................................................................................................................................218 DELETE BLCOMP...........................................................................................................................................
PMAC/PMAC2 Software Reference Manual M{constant} ......................................................................................................................................................252 M{constant}={expression} ...............................................................................................................................252 M{constant}-> ...........................................................................................................................................
PMAC/PMAC2 Software Reference Manual {axis}{data}:{data} [{axis}{data}:{data}...] ....................................................................................................292 {axis}{data}^{data}[{axis}{data}^{data}...].....................................................................................................293 {axis}{data} [{axis}{data}...] {vector}{data} [{vector}{data}...].....................................................................294 A{data} ................................
PMAC/PMAC2 Software Reference Manual MACROAUXREAD...........................................................................................................................................331 MACROAUXWRITE .........................................................................................................................................332 MACROSLVREAD............................................................................................................................................
PMAC/PMAC2 Software Reference Manual ATAN2 ..............................................................................................................................................................365 COS...................................................................................................................................................................366 EXP......................................................................................................................................
PMAC/PMAC2 Software Reference Manual Background Variable Data Write Buffer -- Host to PMAC Transfer................................................................442 Variable Address Buffer Format for each Data Structure (6x16-bit) ...............................................................443 Binary Rotary Motion Program Transfer Buffers.............................................................................................443 DPRAM Data Gathering Buffer ..........................................
PMAC/PMAC2 Software Reference Manual Table of Contents xiii
PMAC/PMAC2 Software Reference Manual PMAC COMMAND AND VARIABLE SUMMARY Notes PMAC syntax is not case sensitive. Spaces are not important in PMAC syntax, except where noted {} – item in {} can be replaced by anything fitting definition [] – item in [] is optional to syntax [{item}...] – indicates previous item may be repeated in syntax [..
PMAC/PMAC2 Software Reference Manual – Report checksum of current command line – Toggle serial communications full/half duplex – Execute ASCII command from DPRAM buffer – Abort current PMAC command and response strings – Report last command to host; ready to repeat to card – Make serial port the communications port General Global Commands $$$ – Global reset: including all motors and coord.
PMAC/PMAC2 Software Reference Manual PLC Control Commands ENABLE PLC{constant}[,{constant}...] – Enable operation of specified interpreted PLC program[s] DISABLE PLC{constant}[,{constant}...] – Disable operation of specified interpreted PLC program[s] PAUSE PLC{constant}[,{constant}...] – Suspend operation of specified interpreted PLC program[s] at present point RESUME PLC{constant}[,{constant}...
PMAC/PMAC2 Software Reference Manual MACRO Ring Commands MACROAUX – Report Type 0 MACRO slave variable value to host MACROAUXREAD – Copy Type 0 MACRO slave variable to PMAC variable MACROAUXWRITE – Copy PMAC variable value to Type 0 MACRO slave variable MACROSLV {command} {node#} – Send command to Type 1 MACRO slave MACROSLV {node#},{slave variable} – Report Type 1 MACRO slave variable value to host MACROSLV {node#},{slave variable}={constant} – Set Type 1 MACRO slave variable value MACROSLVREAD – Copy Typ
PMAC/PMAC2 Software Reference Manual Axis Attribute Commands {axis}={expression} – Change value of commanded axis position Z – Make present commanded position of all axes in coordinate system equal to zero. INC[({axis}[,{axis}...])] – Make all [or specified] axes do their moves incrementally ABS[({axis}[,{axis}...])] – Make all [or specified] axes do their moves absolute FRAX({axis}[,{axis}...
PMAC/PMAC2 Software Reference Manual Reporting Commands P – Report position of motor V – Report velocity of motor F – Report following error of motor ? – Report status words for motor in hex ASCII form Buffer Control Commands DEFINE BLCOMP {entries},{count length} – Establish backlash compensation table for motor; to be filled by specified number of values DELETE BLCOMP – Erase backlash compensation table for motor DEFINE COMP {entries},[#{source},[#{target},]],{count length} – Establish leadscrew compens
PMAC/PMAC2 Software Reference Manual SPLINE2 – Non-uniform cubic spline move mode CC0 – Turns off cutter radius compensation CC1 – Turns on cutter radius compensation left CC2 – Turns on cutter radius compensation right Axis Attribute Commands ABS[({axis}[,{axis},...])] – Makes all [or specified] axes in absolute move mode INC[({axis}[,{axis},...])] – Makes all [or specified] axes in incremental move mode FRAX[({axis}[,{axis}...])] – Specifies feedrate axes NORMAL{vector}{data}[{vector}{data}...
PMAC/PMAC2 Software Reference Manual READ ({letter} [,{letter}...]) – Allows subprogram or subroutine to take arguments G{data} – Gnn[.mmm] interpreted as CALL 1000.nnmmm (PROG 1000 provides subroutines for desired G-Code actions.) M{data} – Mnn[.mmm] interpreted as CALL 1001.nnmmm (PROG 1001 provides subroutines for desired M-Code actions.) T{data} – Tnn[.mmm] interpreted as CALL 1002.nnmmm (PROG 1002 provides subroutines for desired T-Code actions.) D{data} – Dnn[.mmm] interpreted as CALL 1003.
PMAC/PMAC2 Software Reference Manual PLC Program Commands Conditions IF ({condition}) – Evaluates condition to determine which branch to enter WHILE ({condition}) – Conditional loop start; if true, holds up operation of PLC in the WHILE loop AND ({condition}) – Forms compound condition w/ IF or WHILE OR ({condition}) – Forms compound condition w/ IF or WHILE ELSE – Starts false branch of IF ENDIF – Closes out the actions dependent on an IF statement; used after, not before, an ELSE statement.
PMAC/PMAC2 Software Reference Manual PMAC I-Variable Summary General Divisions I0 – I99 .........General card setup (global) I100 – I186 ......Motor #1 setup I187 – I199 .....Coordinate System 1 setup I200 – I286 ......Motor #2 setup I287 – I299 .....Coordinate System 2 setup ... I800 – I886 .....Motor #8 setup I887 – I899 .....Coordinate System 8 setup I900 – I979 .....Encoder 1 - 16 setup (in groups of 5) I980 – I1023 ...Reserved for future use Global I-Variables I0......................
PMAC/PMAC2 Software Reference Manual I59....................DPRAM Buffer Maximum Motor/C.S. Number I60....................Auto-Converted ADC Register Address {PMAC(1) only} I61....................Number of Auto-Converted ADC Registers {PMAC(1) only} I62....................Internal Message Carriage Return Control I63....................Control-X Echo Enable I64....................Internal Response Tag Enable I65....................User Configuration Variable I66....................
PMAC/PMAC2 Software Reference Manual Ix29..................Motor x Output - or First Phase – Bias Motor Servo Control I-Variables {Standard PID Algorithm} Ix30..................Motor x PID Proportional Gain Ix31..................Motor x PID Derivative Gain Ix32..................Motor x PID Velocity Feedforward Gain Ix33..................Motor x PID Integral Gain Ix34..................Motor x PID Integration Mode Ix35..................Motor x PID Acceleration Feedforward Gain Ix36..................
PMAC/PMAC2 Software Reference Manual Ix52..................Motor x ESA k3 Gain Ix53..................Motor x ESA KS Gain Ix54..................Motor x ESA d1 Gain Ix55..................Motor x ESA d2 Gain Ix56..................Motor x ESA g0 Gain Ix57..................Motor x ESA g1 Gain Ix58..................Motor x ESA GS Gain Ix60..................Motor x Servo Cycle Extension Period Ix61..................Motor x Current-Loop Integral Gain {PMAC2 only} Ix62..................
PMAC/PMAC2 Software Reference Manual PMAC(1) Servo Interface Setup I-Variables For Encoder n (n = 1 to 16) I900 - I904 I905 - I909 I910 - I914 I915 - I919 ...
PMAC/PMAC2 Software Reference Manual I993..................Supplemental Hardware Clock Control I994..................Supplemental Deadtime/Pulse-Width Control I995..................MACRO Ring Master/Slave Control I996..................MACRO Node Activation Control I997..................Ultralite Phase Clock Frequency Control I998..................Ultralite Servo Clock Frequency Control MACRO Support I-Variables I1000................MACRO Node Auxiliary Register Enable I1001................
PMAC/PMAC2 Software Reference Manual PMAC Error Code Summary PMAC can report the following error messages in response to commands: Error Problem ERR001 Command not allowed during program execution Password error Data error or unrecognized command Illegal character: bad value (>127 ASCII) or serial parity/framing error Command not allowed unless buffer is open No room in buffer for command ERR002 ERR003 ERR004 ERR005 ERR006 ERR007 ERR008 ERR009 ERR010 ERR011 ERR012 ERR013 ERR014 ERR015 ERR016 ERR017 So
PMAC/PMAC2 Software Reference Manual PMAC Syntax Notes 1. PMAC syntax is not case-sensitive. That is, it does not matter whether an upper-case or lower-case letter is used in any command or statement. PMAC commands are shown in this document in all upper-case letters to help distinguish them better from the explanatory text. Example: X1000 and x1000 are identical statements to PMAC. 2.
PMAC 2 Software Reference 18 PMAC Command and Variable Summary
PMAC 2 Software Reference PMAC I-VARIABLE SPECIFICATION On PMAC, I-variables (Initialization, or Set-up, Variables) determine the “personality” of the controller for a given application. They are at fixed locations in memory and have pre-defined meanings. Most are integer values, and their range varies depending on the particular variable.
PMAC 2 Software Reference Typically multiple PMAC2 boards on the same serial cable will share servo and phase clock signals over the serial port cable for tight synchronization. If the servo and phase clock lines are connected between multiple PMACs, only one of the PMAC boards can be set up to output these clocks (E40 – E43 all ON for a PMAC(1), E1 jumper OFF for a PMAC2).
PMAC 2 Software Reference When software addressing is not used (I1 is 0 or 1), PMAC assumes that it is the only card on the serial line, so it always acts on received commands, sending responses back over the line as appropriate. When software addressing is used (I1 is 2 or 3), PMAC assumes that there are other cards on the line, so it requires that it be addressed (with the @{card command) before it responds to commands.
PMAC 2 Software Reference Valid values of I3 and the modes they represent are: 0: PMAC does not acknowledge receipt of a valid command. It returns a character on receipt of an invalid command. Messages are sent without beginning or terminating (line feed); simply as DATA (carriage return). 1: PMAC acknowledges receipt of a valid -terminated command with a ; of an invalid command with a character. Messages are sent as DATA [ DATA ... ] .
PMAC 2 Software Reference ............................ ; PMAC responds with requested data With I3=3: #1J+......... ; Valid command not requiring data response ................ ; Acknowledging character UUU ........... ; Invalid command .............. ; PMAC reports error P1..3 ...... ; Valid command requiring data response 255075 ............................
PMAC 2 Software Reference PMAC-to-Host Checksum: PMAC will compute the checksum of any communications line it sends to the host. This checksum includes control characters sent with the line, including the final . The checksum is sent immediately following this . On a multiple-line response, one checksum is sent for each line. Note that this checksum is sent before the checksum of the command line that caused the response.
PMAC 2 Software Reference I6 Error Reporting Mode Range Units Default Remarks 0 .. 3 none 3 I6 controls how PMAC reports errors in command lines. When I6 is set to 0 or 2, PMAC reports any error only with a character. When I6 is 0, the character is given for invalid commands issued both from the host and from PMAC programs (using CMD”{command}”).
PMAC 2 Software Reference ERR017 See Also I7 (should move motor(s) back to halted position with J=) Talking to PMAC Writing a Host Communications Program I-variables I3, I4 On-line commands R, S In-Position Number of Cycles Range Units Default Remarks See Also I8 Motor(s) in C.S. not at halted position to restart after / or \ command 0 ..
PMAC 2 Software Reference See Also I9 In multiple-card PMAC applications where it is very important that motion programs on the two cards start as closely together as possible, I8 should be set to 0. In this case, no PLC 0 should be running when the cards are awaiting a Run command. At other times I8 may be set greater than 0 and PLC 0 re-enabled. How PMAC Executes a Motion Program (Writing a Motion Program) PLC 0 (Writing a PLC Program) Full/Abbreviated Program Listing Form Range 0 ..
PMAC 2 Software Reference DWELL1000 RETURN See Also I10 With I9=2: I125 .................. $C000................ ; Request address I-variable value ; PMAC reports just value, in hexadecimal With I9=3: I125 .................. I125=$C000 ; Request address I-variable value ; PMAC reports whole statement, in hexadecimal Talking to PMAC On-line commands I{constant}, M{constant}->, LIST I-Variables I19-I44, I47, Ix02-Ix05, Ix25, Ix83, Ix93 Servo Interrupt Time Range 0 ..
PMAC 2 Software Reference I 10 = 640 (2 * I 992 + 3)(I 997 + 1)(I 998 + 1) 9 I10 is used to provide the “delta-time” value in the position update calculations, scaled such that 223 – 8,388,608 – means one millisecond. Delta-time in these equations is I10*(%value/100). The % (feedrate override) value can be controlled in any of several ways: with the on-line ‘%’ command, with a direct write to the command ‘%’ register, with an analog voltage input, or with a digital input frequency.
PMAC 2 Software Reference I12 Jog-to-Position Calculation Time Range 1 .. 8,388,607 Units msec Default 10 Remarks I12 controls how much time is allotted to calculate an on-line jog or homing-search move or a motion program RAPID move, including the “post-trigger” portions of triggered moves (homing search, move until trigger). If a motor is currently moving, it will continue on its present course during that time. If it is currently sitting still, it will continue to sit for this time.
PMAC 2 Software Reference Note: When I13=0, moves are done without this ongoing spline technique, and CIRCLE mode moves are done as LINEAR mode moves. See Also I14 Circular Interpolation, Cutter Radius Compensation (Writing a Motion Program) On-line commands /, \ Program commands {axis}{data}{vector}{data}, CIRCLE1, CIRCLE2, CC0, CC1, CC2 Auto Position Match on Run Enable Range 0 ..
PMAC 2 Software Reference Note: The BREQ line to the interrupt controller reflects the status of the hardware-selected coordinate system (by JPAN pins FPDn/) if the control-panel inputs are enabled (I2=0); it represents the status of the software-host-addressed coordinate system if the control-panel inputs are disabled (I2=1). In virtually all applications using this feature, the user will want to set I2 to 1 so the BREQ line reflects the status of the coordinate system to which he is currently talking.
PMAC 2 Software Reference See Also I18 Program Using Interrupts (Writing a Host Communications Program) Rotary Motion Program Buffers (Writing a Motion Program) Coordinate-system “buffer-full” status bit (Y:$0817, etc., bit 16) On-line commands PR, ?? I-variables I2, I16, I18 Fixed Buffer Full Warning Point Range 0 ..
PMAC 2 Software Reference I20 Data Gathering Selection Mask Range $000000 .. $FFFFFF (0 .. 16,777,215) Units none Default 0 Remarks I20 is a 24-bit variable that controls which of the 24 potential data sources (as specified by I21 to I44) will be gathered when gathering is performed. If bit 0 (least significant bit) is 1, the 1st source (specified by I21) will be gathered; if it is 0, it will not be. Bit 1 controls the 2nd source (I22), and so on, to bit 23, which controls the 24th source (I44).
PMAC 2 Software Reference Example If the word address were $0720 (1824 decimal), I21=$000720 would denote gathering of the Y word; I21=$400720 would denote gathering of the X word; I21=$800720 or I21=$C00720 would cause gathering of both words. (You may specify this parameter in decimal form, but it is much more tricky.) See Also Data Gathering (Analysis Features) On-line commands GATHER, ENDGATHER, I-variables I19, I21-I44. I22–I44 Data Gathering Source 2 thru 24 Addresses Range $000000 ..
PMAC 2 Software Reference The DPRAM locations used by PMAC for gathering are as follows; Address 0x08FC (Y:$D23F) 0x08FC (X:$D23F) 0x0900 ($D240) Description Data Gather Buffer Size. PMAC Data Gather Buffer Storage Address. If I45 = 2 and the buffer’s end has been reached (this index is greater than or equal to the size), the DEFINE GATHER command must be issued again to allow gathering to restart. Start of Data Gather Buffer (not changeable). Note: In firmware version 1.
PMAC 2 Software Reference The command permits the host to load command strings into dual-ported RAM (Option 2 required), instead of the normal command interface, then cause the command to be accepted by sending a single byte (ASCII 23D is ) to the command interface. Note: The function is now effectively obsolete. The newer bidirectional DPRAM ASCII communications feature enabled by I58 is superior and should be used instead.
PMAC 2 Software Reference See Also I50 DPRAM Background Data Reporting (Option 2 DPRAM Manual) I-variables I48, I59 Rapid Move Mode Control Range 0 .. 1 Units none Default 1 Remarks I50 determines which variables are used for speed of RAPID mode moves. When I50 is set to 0, the jog parameter for each motor (Ix22) is used. When I50 is set to 1, the maximum velocity parameter for each motor (Ix16) is used instead.
PMAC 2 Software Reference Example To execute a full stop in one second with the default servo update time (I10 = 3,713,707) and a move segmentation time of 10 msec, I52 should set to 3,713,707 * 10 / 1000 = 37,137. See Also Stop Commands (Making Your Application Safe) I-variables I13, Ix95 On-line commands \, H I53 Program Step Mode Control Range 0 .. 1 Units none Default 0 Remarks I53 controls the action of a Step (S) command in any coordinate system on PMAC.
PMAC 2 Software Reference I54 Baud Rate Error with CPU at 40 MHz Error with CPU at 60 MHz Error with CPU at 80 MHz Error with CPU at 160 MHz 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 600 900 1200 1800 2400 3600 4800 7200 9600 14,400 19,200 28,800 38,400 57,600 76,800 115,200 0 -0.05% 0 -0.1% 0 -0.19% 0 -0.38% 0 -0.75% 0 -1.5% 0 -3.0% 0 (Disabled) (Disabled) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.03% 0 -0.05% 0 -0.10% 0 -0.19% 0 -0.38% 0 -0.75% 0 -1.5% 0 -3.0% 0 -0.01% 0 -0.03% 0 -0.05% 0 -0.10% 0 -0.
PMAC 2 Software Reference I56 DPRAM ASCII Communications Interrupt Enable Range 0 .. 1 Units none Default 0 Remarks I56 enables or disables the interrupt feature for the dual-ported RAM (DPRAM) ASCII communications function that is enabled with I58=1. When I56=1, PMAC will generate an interrupt to the host computer each time it loads a line into the DPRAM ASCII buffer for the host to read. When I56=0, it will not generate this interrupt.
PMAC 2 Software Reference I58 DPRAM ASCII Communications Enable Range Units Default Remarks See Also I59 0 .. 1 none 0 I58 enables or disables the dual-ported RAM (DPRAM) ASCII communications function. When I58=1, this function is enabled and the host computer can send ASCII command lines to the PMAC through the DPRAM and receive ASCII responses from PMAC through the DPRAM. When I58=0, this function is disabled.
PMAC 2 Software Reference For the ACC-36 board automatically converted using I60 and I61, the board must never be accessed in user programs, but user programs may read the memory registers in PMAC to which the ADC values are copied. If I60 is set to 0, no automatic conversion will take place. If the first two hex digits of I60 are set to anything except $FF, PMAC will automatically change them to $FF. ADCs 1 to 8 are copied into the low 12 bits of registers Y:$0708 to Y:$070F, respectively.
PMAC 2 Software Reference and it is important to have new feedback values every servo cycle. Therefore an ACC-36 with Option 1 is ordered, so there are 2 ADCs per register, and I61 is set to 3 to convert the first 4 registers in a cyclic fashion. ADCs 1 to 4 are copied into Y:$0708 to Y:$070B, respectively; ADCs 9 to 12 are copied into X:$0708 to X:$070B, respectively.
PMAC 2 Software Reference The host computer can use the character to clear out PMAC’s communications buffers and make sure that no unintended responses are received for the next command. However, without an acknowledgement that the buffers have been cleared, the host computer has to add a safe delay to ensure that the operation has been done before the next command can be issued.
PMAC 2 Software Reference I65 User-Configuration Variable Range 0 – 16,777,215 Units None Default 0 Remarks I65 is an I-variable that has no automatic use on PMAC. The purpose of this variable is to provide an easy way for the user to confirm that the application configuration has been loaded into the PMAC. Since the factory default value for I65 is 0, setting I65 to a nonzero value as part of the configuration permits an easy way to verify that the configuration file has been downloaded.
PMAC 2 Software Reference requires that the auto-copying function be enabled. I67 Modbus TCP Buffer Start Address Range $0 – $9FFF Units PMAC addresses Default 0 Remarks I67 enables the Modbus TCP interface in PMAC software and reports the starting address of the 256-word Modbus buffer in PMAC memory. To enable the Modbus TCP interface on the PMAC’s Ethernet port, the following conditions must apply: 1. 2. 3. 4.
PMAC 2 Software Reference I69 Modbus TCP Software Control Panel Start Address Range $0 – $FFFF Units PMAC addresses Default 0 Remarks I69 enables and specifies the address of the start of the Modbus TCP software control panel in PMAC. I69 permits a software control panel to be commanded over the Modbus TCP link, typically from a PLC, using part of the user buffer created with the DEFINE UBUFFER command and reserved for Modbus TCP use with I67.
PMAC 2 Software Reference CONFIG_W2 is the selection word for the second A/D converter set (Option 12A) CONFIG_W1 is the selection word for the first A/D converter set (Option 12) DATA_W2 is the matching A/D data from the second A/D converter set (Option 12A) DATA_W1 is the matching A/D data from the first A/D converter set (Option 12) A value of 0-7 in CONFIG_W1 tells PMAC2 to read channel ANAI00-07, respectively, as a 0 to+5V input, resulting in an unsigned value.
PMAC 2 Software Reference I75=$00D00D ; Select ANAI05 and ANAI08 (if present) bipolar I76=$00E00E ; Select ANAI06 and ANAI08 (if present) bipolar I77=$00F00F ; Select ANAI07 and ANAI08 (if present) bipolar Once this setup has been made, PMAC2 will automatically cycle through the analog inputs, copying the converted digital values into RAM. These image registers can then be read as if they were the actual A/D converters. For user program use, the image registers would be accessed with M-variables.
PMAC 2 Software Reference There can be up to eight R/D converters on two ACC-8D Option 7 boards at one multiplexer address. Example Motor 3 has a triple resolver, with each resolver geared down by a ratio of 16:1 from the resolver before it. The fine resolver is connected to R/D converter 4 at multiplexer address 0 (the first R/D converter on the second ACC-8D Option 7 at address 0).
PMAC 2 Software Reference Before V1.16 firmware, an arc was added to an outside corner if the change in directed angle were greater than 1o. Example If it is desired that an arc only be added if the change in directed angle is greater than 45 o, o then I89 should be set to 0.707, because cos ∆θ = cos 45 = 0.
PMAC 2 Software Reference number of turns (electrical cycles) the first resolver makes in one full turn (electrical cycle) of the second resolver. This parameter is used only during PMAC’s power-up/reset cycle to establish absolute power-on servo position. Therefore, the parameter must be set, the value stored in EAROM with the SAVE command, and the card reset before it takes effect.
PMAC 2 Software Reference I99 Backlash Hysteresis Range 0 .. 8,388,607 Units 1/16 count Default 64 (= 4 counts) Remarks This parameter controls the size of the direction reversal in motor commanded position that must occur on any motor before PMAC starts to add the programmed backlash (Ix86) in the direction of motion. The purpose of this variable is to allow the customer to ensure that a very small direction reversal (e.g.
PMAC 2 Software Reference Ix01 Motor x PMAC-Commutation Enable Range Units Default Remarks See Also Ix02 0 .. 1 none 0 Ix01 determines whether PMAC will perform commutation calculations for Motor x. If Ix01 is set to 0, PMAC will not perform commutation calculations for the motor, and it will compute only one output value for that motor (usually analog or pulse-and-direction). If a multi-phase motor is used, but is commutated in the amplifier, Ix01 should be set to 0.
PMAC 2 Software Reference On PMAC(1) boards, if Ix01 is set to 0 and bit 16 of Ix02 is set to 1, then only the magnitude of the command is written to the register specified by Ix02 (e.g. I103=$1C003 to use DAC1 in this mode); the sign of the command is written to bit 14 of the flag register specified by Ix25, which is usually the AENA/DIR output. If this sign-and-magnitude mode is used, bit 16 of Ix25 should be set to 1 so this bit is not used for the amplifierenable function.
PMAC 2 Software Reference Channel Address Channel PFM1 $C004 PFM9 PFM2 $C00C PFM10 PFM3 $C014 PFM11 PFM4 $C01C PFM12 PFM5 $C024 PFM13 PFM6 $C02C PFM14 PFM7 $C034 PFM15 PFM8 $C03C PFM16 Channels 9 – 16 are on an ACC-24P/V2 board Address $C044 $C04C $C054 $C05C $C064 $C06C $C074 $C07C When commanding pulse-and-direction from a PMAC Ultralite through a MACRO ring, use the address of Register 2 for the MACRO node, as shown in the following table: Channel Address Channel Address Node 0 Reg.
PMAC 2 Software Reference When commanding in this mode over the MACRO ring, the address specified is that of Register 0 for the MACRO node. The following table shows these addresses: See Also Ix03 Address Channel Address $C0A0 $C0A4 $C0A8 $C0AC Node 8 Reg. 0 Node 9 Reg. 0 Node 12 Reg. 0 Node 13 Reg.
PMAC 2 Software Reference I103=$10722 I125=$C000 This would permit homing on interferometer data with HMFL1 triggering. Note: In the extended version, it is obviously easier to specify this parameter in hexadecimal form. With I9 at 2 or 3, the value of this variable will be reported back to the host in hexadecimal form. Capture on following error: If bit 17 of Ix03 is set to 1, then the trigger for position capture of this motor is a true state on the warning following error status bit for the motor.
PMAC 2 Software Reference Ix04 Motor x Velocity Loop Feedback Address Range Units Default Remarks Legal PMAC X addresses Legal PMAC X addresses Same as Ix03 Ix04 holds the address of the position feedback device that PMAC uses for its velocityloop feedback information. For a motor with only a single feedback device (the usual case), this must be the same as Ix03. For a motor with dual feedback (motor and load), use Ix04 to point to the encoder on the motor, and Ix03 to point to the encoder on the load.
PMAC 2 Software Reference Ix05 Motor x Master (Handwheel) Position Address Range Units Default Remarks Legal PMAC X addresses Legal PMAC X addresses $073F (1855) (= zero register at end of conversion table) Ix05 tells the PMAC where to look for the position of the master, or handwheel, encoder for Motor x. Usually this is an entry in the Encoder Conversion Table that holds processed information from an encoder channel.
PMAC 2 Software Reference Ix06 Motor x Master (Handwheel) Following Enable Range Units Default Remarks 0 .. 1 none 0 Ix06 disables or enables Motor x’s position following function. A value of 0 means disabled; a value of 1 means enabled. Following mode is specified by high bits of Ix05. Note: This parameter can be changed on-line in a PMAC(1) through hardware inputs on the JPAN connector. The FPDn/ motor/coordinate-system select lines (low-true BCD-coded) can turn Ix06 on and off.
PMAC 2 Software Reference Note: When changing this parameter, make sure the motor is killed (disabled). Otherwise, a sudden jump will occur, because the internal position registers will have changed. This means that this parameter should not be changed in the middle of an application. If a real-time change in the position-following “gear ratio” is desired, Ix07 should be changed. In most practical cases, Ix08 should not be set above 1000 because higher values can make the servo filter saturate too easily.
PMAC 2 Software Reference Ix10 Motor x Power-Up Servo Position Address Range Units Default Remarks $000000 - $FFFFFF Extended PMAC Addresses 0 Ix10 controls whether PMAC reads an absolute position sensor for Motor x on power-up/reset and/or with the $* command. If an absolute position read is to be done, Ix10 specifies what register is read for that absolute position data and how the data in this register is interpreted. If Ix10 is set to 0, no absolute power-on/reset position read is performed.
PMAC 2 Software Reference $F3xxxx $F4xxxx $F4xxxx MACRO Station R/D Converter MACRO Station Parallel Read EnDat Data Read (Geo PMAC) MACRO Node Number MACRO Node Number Geo PMAC Signed Signed Signed The following section provides details for each type of position feedback. R/D Converter: If Ix10 contains a value from $0000xx to $0700xx, or from $8000xx to $8700xx, Motor x will expect its absolute power-on position from an ACC-8D Opt. 7 R/D converter board.
PMAC 2 Software Reference Parallel Data Read: If Ix10 contains a value from $08xxxx to $30xxxx, from $48xxxx to $70xxxx, from $88xxxx to $B0xxxx, or from $C8xxxx to $F0xxxx, Motor x will do a parallel data read of the PMAC memory or I/O register at address ‘xxxx’. In this mode, bits 16 to 21 of Ix10 specify the number of bits to be read, starting with bit 0 at the specified address. In this mode, they can take a value from $08 to $30 (8 to 48).
PMAC 2 Software Reference ACC-28 A/D Converter Read: If Ix10 is set to $31xxxx or $B1xxxx, Motor x will expect its power-on position in the upper 16 bits of the PMAC Y-memory or I/O register specified by ‘xxxx’. This format is intended for ACC-28 A/D converters. Bit 23 of Ix10 specifies whether the position is interpreted as an unsigned or a signed value. If the bit is set to 0, it is interpreted as an unsigned value, if the bit is 1, it is interpreted as a signed value.
PMAC 2 Software Reference its power-on position from the Yaskawa Absolute Encoder converter board at the multiplexer port address specified by ‘xx’. Bit 23 of Ix10 specifies whether the position is interpreted as an unsigned value (Bit 23 = 0, making the first hex digit a 7) or as a signed value (Bit 23 = 1, making the first hex digit an F). Set Ix10 to $7100xx for unsigned, or to $F100xx for signed.
PMAC 2 Software Reference port address is also read and treated as a geared-down resolver, with I9x specifying the gear ratio. If I8x is also set greater than 0, the following R/D converter at the same multiplexer port address is read and treated as a third resolver geared down from the second, with I8x specifying that gear ratio.
PMAC 2 Software Reference (killed). If the motor’s coordinate system is executing a program at the time, the program is aborted. It is optional whether other PMAC motors are disabled when this motor exceeds its following error limit; bits 21 and 22 of Ix25 control what happens to the other motor (the default is that all PMAC motors are disabled). A status bit for the motor, and one for the coordinate system (if the motor is in one) are set.
PMAC 2 Software Reference Ix12 Motor x Warning Following Error Limit Range Units Default Remarks 0 .. 8,388,607 1/16 Counts 16000 (1000 counts) Ix12 sets the magnitude of the following error for Motor x at which a warning flag goes true. If this limit is exceeded, status bits are set for the motor and the motor’s coordinate system (if any). The coordinate system status bit is the logical OR of the status bits of all the motors in the coordinate system.
PMAC 2 Software Reference Ix13 Motor x Positive Software Position Limit Range +/- 235 Units Encoder Counts Default 0 Remarks Ix13 sets the position for Motor x which if exceeded in the positive direction causes a deceleration to a stop (controlled by Ix15) and allows no further positive position increments or positive output commands as long as the limit is exceeded. If this value is set to zero, there is no positive software limit (if you want 0 as a limit, use 1).
PMAC 2 Software Reference Ix15 Motor x Deceleration Rate on Position Limit or Abort Range positive floating point Units Counts/msec Default 0.25 2 Remarks WARNING: Do not set this parameter to zero, or the motor will continue indefinitely after an abort or limit. Ix15 sets the rate of deceleration that Motor x will use if it exceeds a hardware or software limit, or has its motion aborted by command (A or
PMAC 2 Software Reference Ix17 Motor x Maximum Permitted Motor Program Acceleration Range positive floating point Units counts/msec Default 0.5 Remarks Ix17 sets a limit to the allowed acceleration in LINEAR-mode blended programmed moves for Motor x, provided I13 equals zero (no move segmentation).
PMAC 2 Software Reference With the same setup parameters, and the following program segment: INC F10 TA200 TS0 X20 Y20 X-20 Y20 The rate of acceleration from the program at the corner for motor #1 (X) is ((-7.072 7.07)units/sec * 10000 cts/unit * sec/1000msec) / 200 msec = -0.707 cts/msec . The acceleration of motor #2 (Y) is 0.0. Since motor #1 exceeds its limit the acceleration time will be lengthened to 200 * 0.707/0.25 = 707 msec.
PMAC 2 Software Reference Motor Movement I-Variables Ix20 Motor x Jog/Home Acceleration Time Range 0 .. 8,388,607 Units msec Default 0 (so Ix21 controls) Remarks Ix20 establishes the time spent in acceleration in a jogging, homing, or programmed RAPID-mode move (starting, stopping, and changing speeds). However, if Ix21 (jog/home S-curve time) is greater than half this parameter, the total time spent in acceleration will be 2 times Ix21.
PMAC 2 Software Reference A change in this parameter will not take effect until the next move command. For instance, if you wanted a different deceleration time from acceleration time in a jog move, you would specify the acceleration time, command the jog, change the deceleration time, then command the jog move again (e.g. J=), or at least the end of the jog (J/).
PMAC 2 Software Reference Ix25 Motor x Limit/Home Flag Range Extended legal PMAC X addresses Units Extended legal PMAC X addresses Default Remarks Variable PMAC(1) PMAC2 PMAC2 Ultralite I125 I225 I325 I425 I525 I625 I725 I825 $C000 $C004 $C008 $C00C $C010 $C014 $C018 $C01C $C000 $C008 $C010 $C018 $C020 $C028 $C030 $C038 $40F70 $40F71 $40F74 $40F75 $40F78 $40F79 $40F7C $40F7D This parameter tells PMAC what set of flags it will look to for Motor x’s overtravel limit switches, home flag, ampli
PMAC 2 Software Reference The overtravel-limit inputs specified by this parameter must be held low in order for Motor x to be able to command movement. The polarity of the amplifier-fault input is determined by a high-order bit of this parameter (see below). The polarity of the homeflag input is determined by the Encoder/Flag I-Variables 2 and 3 for the specified encoder. The polarity of the amplifier-enable output is determined by Jumper E17.
PMAC 2 Software Reference Overtravel Limit Use Bit: With bit 17 equal to zero – the normal case – the +/-LIMn inputs must be held low to permit commanded motion in the appropriate direction. If there are not actual (normally closed or normally conducting) limit switches, the inputs must be hardwired to ground. Note: The direction sense of the limit inputs is the opposite of what many people consider intuitive.
PMAC 2 Software Reference For reference, the possible values and their meanings are: Hex Digit Function $0: Low-true amp fault enabled; all motors killed on fault or excess following error (default) Amp fault disabled; all motors killed on excess following error Low-true amp fault enabled: coordinate system motors killed on fault or excess following error Amp fault disabled; coordinate system motors killed on excess following error Low-true amp fault enabled; only this motor k8illed on fault or excess f
PMAC 2 Software Reference Ix26 Motor x Home Offset Range Units Default Remarks -8,388,608 .. 8,388,607 1/16 Count 0 Ix26 specifies the relative distance of the Motor x zero position to either the trigger position of a homing search move, or the zero position of an absolute sensor. If Ix10 is set to 0, PMAC presumes the motor uses an incremental sensor and sets motor position to 0 on power-up/reset. A homing search move is then required to establish the true machine zero position.
PMAC 2 Software Reference If Ix27 is set to a value greater than zero, for a programmed axis move in Absolute (ABS) mode, the motor will take the shortest path around the circular range defined by Ix27 to get to the destination point. No absolute move will be greater than half a revolution in this mode.
PMAC 2 Software Reference Ix28 Motor x In-position Band Range 0 .. 8,388,607 Units 1/16 Count Default 160 (10 counts) Remarks Ix28 determines the magnitude of the maximum following error at which Motor x will be considered “in position” when not performing a move. Several things happen when the motor is “in-position”. First, a status bit in the motor status word is set.
PMAC 2 Software Reference Mode 1: When PMAC is not commutating Motor x (Ix01 = 0), Ix29 serves as the offset for the single command output value, usually a DAC command. Ix29 is added to the output command value before it is written to the command output register.
PMAC 2 Software Reference Servo Control I-Variables Ix30 – Ix58 Motor x Extended Servo Algorithm Gains {Option 6 firmware only} Range 0.0 – 0.999999 Units none Default 0.0 Remarks When the Option 6 Extended Servo Algorithm (ESA) special firmware is ordered, variables Ix30 through Ix58 for each Motor x have different meanings from those in the standard firmware with the PID servo filter. The following table shows the meanings of these variables for the ESA algorithm.
PMAC 2 Software Reference If Ix30 is set to a negative value, this has the effect of inverting the command output polarity for motors not commutated by PMAC, when compared to a positive value of the same magnitude. This can eliminate the need to exchange wires to get the desired polarity. On a motor that is commutated by PMAC, changing the sign of Ix30 has the effect of o changing the commutation phase angle by 180 .
PMAC 2 Software Reference Ix32 Motor x PID Velocity Feedforward Gain Range 0 .. 8,388,607 Units (Ix30*Ix08)/2 DAC bits/(counts/cycle) Default 1280 Remarks Ix32 adds an amount to the control output proportional to the desired velocity of Motor x. It is intended to reduce tracking error due to the damping introduced by Ix31, analog tachometer feedback, or physical damping effects.
PMAC 2 Software Reference Ix34 Motor x PID Integration Mode Range 0 .. 1 Units none Default 1 Remarks Ix34 controls when the position-error integrator is turned on. If it is 1, position error integration is is the input to the integrator that is turned off during a commanded move, which means performed only when PMAC is not commanding a move (when desired velocity is zero). If it is 0, position error integration is performed all the time.
PMAC 2 Software Reference The equation for the notch filter is: F( z ) = 1 + N 1z − 1 + N 2 z − 2 1 + D1z − 1 + D 2 z − 2 This parameter is usually set initially using the Tuning utility in the PMAC Executive Program. It may be changed on the fly at any time to create types of adaptive control. See Also Ix37 Notch Filter (Closing the Servo Loop) I-variables Ix30-Ix35, Ix37-Ix39 Tuning Instructions (PMAC Executive Program manual) Motor x PID Notch Filter Coefficient N2 Range -2.0 .. +2.
PMAC 2 Software Reference Ix40 - Ix56 Motor x Extended Servo Algorithm I-Variables (These variables are used only with the Option 6 Extended Servo Algorithm. Refer to the manual for the Extended Servo Algorithm and the ACC-25 Servo Evaluation Program for details.) Ix40 Motor x Net Desired Position Filter Gain {Option 6L Firmware Only} Range 0.0 – 0.999999 Units none Default 0.0 Remarks Ix40 permits the introduction of a first-order low-pass filter on the net desired position for Motor x.
PMAC 2 Software Reference Motor Servo Loop Modifiers These I-variables modify the action of the basic PID servo algorithm. They are not available with the Option 6 Extended Servo Algorithm firmware. Ix57 Motor x Continuous Current Limit Range 0 .. 32,767 Units 16-bit DAC/ADC bit equivalent Default 0 Remarks Ix57 sets the maximum continuous current limit for PMAC’s I2T integrated current limiting function, when that function is active (Ix58 must be greater than 0 for I2T to be active).
PMAC 2 Software Reference • I357 is set to 32,768 * 20/50 = 13,107. 3. PMAC Motor 4 is driving a sine-wave mode amplifier that has a gain for each phase input of 5 amps/volt. The amplifier has a continuous rating of 20 amps (RMS); the motor has a continuous rating of 22 amps (RMS). • PMAC’s maximum output of 32,768, or 10 volts, corresponds to 50 amps peak in a phase. • The amplifier has the lower continuous current rating, so we use its limit of 20 amps (RMS).
PMAC 2 Software Reference Example With the instantaneous current limit Ix69 at 32,767, the magnetization current Ix77 at 0, the continuous current limit Ix57 at 10,589 (1/3 of max), the time permitted with maximum current is at 1 minute, and the servo update rate at the default of 2.25 kHz, Ix58 would be set as: Ix58 = ( 1.0 2 + 0.0 2 − 0.33 2 ) ∗ 2250 ∗ 60 = 120000 See Also Ix59 Integrated Current Protection (Making Your Application Safe) Motor x User-Written Servo/Phase Enable Range 0 ..
PMAC 2 Software Reference Ix60 Motor x Servo Cycle Period Extension Range 0 .. 8,388,607 Units Servo Interrupt Periods Default 0 Remarks Ix60 permits an extension of the servo update time for Motor x beyond the servo interrupt period, which is controlled by hardware (E3-E6, E29-E33, E98, and master clock). The servo loop will be closed every (Ix60 + 1) servo interrupts. With the default value of zero, the loop will be closed every servo interrupt.
PMAC 2 Software Reference Ix62 Motor x Current Loop Proportional Gain (Forward Path) {PMAC2 only} Range 0.0 .. 1.0 (24-bit resolution) Units Output = 4 * Ix62 * (Icmd - Iact) Default 0 Remarks Ix62 is the proportional gain term of the digital current loops that is in the “forward path” of the loop, multiplying the difference between the commanded and actual current levels. Either Ix62 or Ix76 (back path proportional gain) must be used to close the current loop.
PMAC 2 Software Reference Ix64 Motor x Deadband Gain Factor Range Units Default Remarks -32,768 .. 32,767 none 0 (no deadband) Ix64 is part of the PMAC feature known as deadband compensation, which can be used to create or cancel deadband. It controls the effective gain within the deadband zone (see Ix65). When the following error is less than the value of Ix65, the proportional gain (Ix30) is multiplied by (Ix64+16)/16. At a value of -16, Ix64 provides true deadband.
PMAC 2 Software Reference See Also Ix65 I-variables Ix30, Ix65 Closing The Servo Loop Motor x Deadband Size Range Units Default Remarks 0 .. 32,767 1/16 count 16 (=1 count) Ix65 defines the size of the position error band, measured from zero error, within which there will be changed or no control effort, for the PMAC feature known as deadband compensation. Ix64 controls the effective gain relative to Ix30 within the deadband.
PMAC 2 Software Reference Note: The units of this parameter are 1/16 of a count, so the value should be 16 times the number of counts in the limit. See Also Ix68 I-variables Ix11, Ix12, Ix68 Motor x Friction Feedforward Range -32,768 .. 32,767 Units DAC bits Default 0 Remarks Ix68 adds a bias term to the servo loop output of Motor x that is proportional to the sign of the commanded velocity. That is, if the commanded velocity is positive, Ix68 is added to the output.
PMAC 2 Software Reference If you are using differential analog outputs (DAC+ and DAC-), the voltage between the two outputs is twice the voltage between an output and AGND, so the Ix69 value should be set to half of what it would be for a single-ended analog output. This parameter provides a torque (current) limit in systems with current-loop amplifiers, or when using PMAC’s internal commutation; it provides a velocity limit with velocity-mode amplifiers.
PMAC 2 Software Reference • PMAC’s maximum output of 32,768, or 10 volts, corresponds to 20 amps. • The motor has the lower instantaneous current rating, so we use its limit of 15 amps. • I369 is set to 32,768 * 15/20 = 24,576. 3. Motor 5 is driving a self-commutating brushless-motor amplifier in current (torque) mode with a single analog output. The amplifier has a gain of 5 amps(RMS)/volt and an instantaneous current limit of 50 amps (RMS). The motor has an instantaneous current limit of 60 amps (RMS).
PMAC 2 Software Reference Commutation I-Variables Ix70 Motor x Number of Commutation Cycles (N) Range 0 .. 255 Units Commutation cycles Default 1 Remarks For a PMAC-commutated motor (Ix01=1), this parameter is used in combination with Ix71 to define the size of the commutation cycle, in encoder counts, as Ix71/Ix70. Usually, this is set to one, and Ix71 represents the number of counts in a single commutation cycle.
PMAC 2 Software Reference Ix72 Motor x Commutation Phase Angle Range 0 .. 255 Units 360/256 elec. deg. (1/256 commutation cycle) Default 85 (=120o e) Remarks For a PMAC-commutated motor (Ix01 = 1), Ix72 set the angular distance between the phases of a multiphase motor.
PMAC 2 Software Reference For systems with PMAC2 digital current loop closure, the commutation/feedback polarity match is independent of the servo/feedback polarity. Once Ix72 has been set for proper commutation/feedback polarity, the proper position-loop servo/feedback polarity must still be established.
PMAC 2 Software Reference Remarks WARNING: An unreliable phasing search method can lead to a runaway condition. Test your phasing search method carefully to make sure it works properly under all conceivable conditions. Make sure your Ix11 fatal following error limit is active and as tight as possible so the motor will be killed quickly in the event of a serious phasing search error.
PMAC 2 Software Reference In the manual technique, give the motor an O0 command. Put a bias on the A phase (higher-numbered DAC of a PMAC1 pair) by setting Ix29; use a positive bias if Ix72=171 or 192 (2000 is usually a good value); use a negative bias if Ix72=85 or 64. Also put a bias in the opposite direction of the same magnitude on the B phase by setting Ix79. The motor should lock in on a position like a stepper motor.
PMAC 2 Software Reference Ix76 Motor x Velocity Phase Advance Gain {PMAC(1) Only} Range Units Default Remarks See Also Ix76 0 .. 8,388,607 (Ix09*32) / (Ix70*223) counts / (counts per servo update) 0 Ix76 advances the phasing angles on a motor commutated by PMAC(1) by an amount proportional to the measured velocity of the motor. This compensates for the lag in the electrical circuits of the phases, and for calculation delays. It should be set to zero for induction motors.
PMAC 2 Software Reference Ix78 Motor x Induction Motor Slip Gain Range 0 .. 8,388,607 {PMAC(1)} 0.0.. 1.0 (24-bit resolution) {PMAC2} Units 2 (electrical cycles/update)/DAC bit {PMAC(1)} Unitless (ratio of times) {PMAC2} 0 Ix78 controls the relationship between the torque command and the slip frequency of magnetic field on the rotor of an AC asynchronous (induction) motor.
PMAC 2 Software Reference Ix79 Motor x Second Phase Offset Range -32,768 .. 32,767 Units 16-bit DAC/ADC bit equivalent Default 0 Remarks Ix79 serves as an output or feedback offset for Motor x; its exact use depends on the mode of operation as described below: Mode 1: When PMAC is not commutating Motor x (Ix01 = 0) and the output is bipolar (Ix02 bit 16 = 1, the default), Ix79 is not used. Ix29 is the offset for this mode.
PMAC 2 Software Reference • Bit 1 controls what type of phasing search move is performed, if one is required (Ix74 > 0), either during power-up/reset, or on a subsequent $ motor reset command. If bit 1 is 0 and a phasing search move is required, PMAC will use the two-guess phasing search method. If bit 1 is 1 and a phasing search move is required, PMAC will use the “stepper-motor” phasing search method. The state of bit 1 does not matter unless a phasing search move is to be done.
PMAC 2 Software Reference Absolute motor position read: If Ix10 is set to 0, the position reference for a motor comes from a homing search move. If Ix10 is greater than 0, the position reference comes from reading an absolute position sensor at the address and with the format specified by Ix10. In this case, Ix80 bit 2 specifies whether or not this read is done automatically at power-up/reset.
PMAC 2 Software Reference The possible value ranges of Ix81 and the position sources they specify are summarized in the following table: Ix81 Value Range Absolute Position Source Ix81 Address Type $00xxxx - $07xxxx $08xxxx - $18xxxx $48xxxx - $58xxxx $73xxxx $74xxxx $80xxxx - $FFxxxx ACC-8D Opt 7 R/D Converter Parallel Data Y-Register Parallel Data X-Register MACRO Station R/D Converter MACRO Station Parallel Read Hall Sensor Read Multiplexer Port PMAC Memory-I/O PMAC Memory-I/O MACRO Node Number MACR
PMAC 2 Software Reference In this mode, bits 16 to 21 of Ix81 specify the number of bits to be read, starting with bit 0 at the specified address. In this mode, they can take a value from $08 to $18 (8 to 24). In this mode, bit 22 of Ix81 specifies whether a Y-register is to be read, or an X-register. A value of 0 in this bit, yielding Ix81 values from $08xxxx to $18xxxx, specifies a Yregister; a value of 1, yielding Ix81 values from $48xxxx to $58xxxx, specifies an Xregister.
PMAC 2 Software Reference The following table lists the possible values of Ix81 for the ACC-49: Enc. # on Board Ix81 for E1 ON Ix81 for E2 ON Ix81 for E3 ON Enc. # on Board Ix81 for E4 ON Ix81 for E5 ON Ix81 for E6 ON Enc. 1 Enc. 2 $0DFFD0 $0DFFD4 $0DFFD8 $0DFFDC $0DFFE0 $0DFFE4 Enc. 3 Enc. 4 $0DFFE8 $0DFFEC $0DFFF0 $0DFFF4 $0DFFF8 $0DFFFC MACRO R/D Read: If Ix81 contains a value of $73000n, Motor x will read the absolute phase position from an ACC-8D Opt.
PMAC 2 Software Reference The following table shows the Ix81 settings for the flag registers in channels of a PMAC2 that are typically used for hall commutation sensor inputs: Channel Ix81 Channel Ix81 1 $xxC000 5 $xxC020 2 $xxC008 6 $xxC028 3 $xxC010 7 $xxC030 4 $xxC018 8 $xxC038 The proper value of ‘xx’ depends on the offset and direction sense of the hall sensors. In this mode, bit 22 of Ix81 allows for reversal of the sense of the hall-effect sensors.
PMAC 2 Software Reference Motor 4 has a 20-bit single-turn absolute encoder at Port A of the first ACC-14 (address Y:$FFD0): I481=$14FFD0 ($14=20dec) Motor 5 is a brush motor with a double geared resolver at locations 0 and 1 of an ACC-8D Opt 7 board at multiplex address 2; no homing search is permitted: I581=0 (no phasing required); I510=$000002 Motor 6 uses hall-effect sensors wired into the flags on Channel 12 for power-up phase referencing.
PMAC 2 Software Reference When the digital current loop is used for drives connected to the PMAC2 through a MACRO station, the typical values for Ix82 are: Node/Register Ix82 Node/Register Ix82 Node 0/Reg 1 & 2 Node 1/Reg 1 & 2 Node 4/Reg 1 & 2 Node 5/Reg 1 & 2 $C0A2 $C0A6 $C0AA $C0AE Node 8/Reg 1 & 2 Node 9/Reg 1 & 2 Node 12/Reg 1 & 2 Node 13/Reg 1 & 2 $C0B2 $C0B6 $C0BA $C0BE If Ix82>0, the following variables must be set properly for correct operation of the digital current loop: Ix61: Current-Lo
PMAC 2 Software Reference The following table provides the Ix83 values for all of the possible phase-position registers in PMAC(1) system: Channel Ix83 Channel Ix83 1 $C001 9 2 $C005 10 3 $C009 11 4 $C00D 12 5 $C011 13 6 $C015 14 7 $C019 15 8 $C01D 16 Channels 9 – 16 are present on an ACC-24P/V board $C021 $C025 $C029 $C02D $C031 $C035 $C039 $C03D On PMAC2 boards, commutation requires only one channel, so any channel can be used for commutation feedback.
PMAC 2 Software Reference PMAC2 supports interface to serial analog-to-digital converters of many resolutions through its “DSPGATE1” ASIC. The data is received in 18-bit shift registers in the ASIC, which are read as the high end of a 24-bit word, with the number “left-justified” to the most significant bit. Example Ix84 specifies a 24-bit mask word that is combined with the feedback word through a logical AND operation to produce the value that is used in the current loop equations.
PMAC 2 Software Reference If backlash tables are used, Ix86 represents the backlash at motor zero position; values in the table should represent the difference between the backlash at a given position and Ix86. Note: The units of this parameter are 1/16 of a count so the value should be 16 times the number of counts of backlash compensation desired. Example If you find that you have a backlash on reversal of motor direction of 7.5 encoder counts, you would set Ix86 to 7.5 * 16 = 120.
PMAC 2 Software Reference Note: Make sure that the specified acceleration time (Ix87 or 2*Ix88) is greater than zero, even if you are planning to rely on the maximum acceleration rate parameters. A specified acceleration time of zero will cause a divide-by-zero error. The minimum specified time should be Ix87=1, Ix88=0. See Also Ix88 Acceleration Limits (Making Your Application Safe) I-variables I13, Ix17, Ix88 Program Commands TA, TS Coordinate System x Default Program S-Curve Time Range 0 ..
PMAC 2 Software Reference Ix89 Coordinate System x Default Program Feedrate/Move Time Range Positive floating point Units (user position units)/(feedrate time units) for feedrate msec for move time Default 1000.0 Remarks Ix89 sets the default feedrate (commanded speed) for programmed LINEAR and CIRCLE mode moves in Coordinate System x. The first use of an F or TM statement in a motion program overrides this value.
PMAC 2 Software Reference See Also Ix91 Axis Definition Statements (Setting Up a Coordinate System) Velocity-Specified Moves, PVT-Mode Moves (Writing a Motion Program) Motion program commands F{data}, {axis}{data}:{data}. Coordinate System x Default Working Program Number Range 0 .. 32,767 Units Motion Program Numbers Default 0 Remarks Ix91 tells PMAC which motion program to run in this coordinate system when commanded to run from the control-panel input (START/ or STEP/ line taken low).
PMAC 2 Software Reference Remarks Ix93 tells Coordinate System x where to look for its time base control (feedrate override) information by specifying the address of the register that will be used. The default value of this parameter for each coordinate system (see above) specifies the register that responds to on-line commands. If the time base is left alone, or is under host or programmatic control, this parameter should be left at the default.
PMAC 2 Software Reference See Also Ix95 Time-Base Control (Synchronizing PMAC to External Events) I-variables I10, Ix93, Ix95 On-line commands %{constant}, % Coordinate System x Feed Hold Slew Rate Range Units Default Remarks 0 .. 8,388,607 23 2- msec/servo cycle 1644 Ix95 controls the rate at which the axes of the coordinate system stop if a feed hold command (H) is given, and the rate at which they start up again on a succeeding run command (R or S).
PMAC 2 Software Reference Ix97 (Reserved for Future Use) Ix98 Coordinate System x Maximum Feedrate Range Non-negative floating-point Units User axis length/angle units per Ix90 milliseconds Default 0 Remarks Ix98 permits a maximum feedrate to be set for a coordinate system, preventing a program from accidentally exceeding a specified value. If Ix98 is greater than 0, PMAC will compare each commanded vector feedrate value from an F command in a motion program to Ix98.
PMAC 2 Software Reference The following settings may be used to decode an input signal.
PMAC 2 Software Reference I901, I906, ..., I976 Encoder n Filter Disable “Encoder I-Variable 1” {PMAC(1) Only} Range 0 .. 1 Units none Default 0 Remarks This parameter controls whether the encoder channel enables or disables its digital delay filter. The options are: 0 = Encoder n digital delay filter enabled 1 = Encoder n digital delay filter disabled (bypassed) The filter is a 3-stage digital delay filter with best-2-of-3 voting to help suppress noise spikes on the input lines.
PMAC 2 Software Reference The following settings may be used: Setting 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Meaning Software Control (armed) Rising edge of CHCn (third channel) Rising edge of Flag n (as set by Flag Select) Rising edge of [CHCn AND Flag n] – Low true index, high true Flag Software Control (triggered) Falling edge of CHCn (third channel) Rising edge of Flag n (as set by Flag Select) Rising edge of [CHCn/ AND Flag n] – Low true index, high true Flag Software Control (armed) Rising edge of CH
PMAC 2 Software Reference I903, I908, ..., I978 Encoder n Flag Select Control Encoder I-Variable 3 {PMAC(1) only} Range 0 .. 3 Units None Default 0 Remarks This parameter determines which of the Flag inputs will be used for position capture (if one is used – see I902 etc.
PMAC 2 Software Reference PMAC2 Encoder/Flag/Output Setup I-Variables The DSPGATE1 Servo ICs of PMAC2 controllers have several setup variables. PMAC2 has I-variables for the important setup registers of 2 Servo ASICs comprising eight servo interface channels. It is possible to use two additional Servo ASICs on ACC-24P2 or ACC-51P boards, but these do not have Ivariables assigned to their setup registers.
PMAC 2 Software Reference Example To set a PWM frequency of 7.5 kHz and therefore a MaxPhase clock frequency of 15 kHz: I900 = (117,964.8 kHz / [4*7.5 kHz]) - 1 = 3931 See Also I901 I901, I902, I905, I906, I992 Phase Clock Frequency Control {PMAC2 only} Range 0 .. 15 Units PHASE Clock Frequency = MaxPhase Frequency / (I901+1) Default 0 PHASE Clock Frequency = 9.0346 kHz / 1 = 9.
PMAC 2 Software Reference I902 Servo Clock Frequency Control {PMAC2 only} Range 0 .. 15 Units Servo Clock Frequency = PHASE Clock Frequency / (I902+1) Default 3 — SERVO Clock Frequency = 9.0346 kHz / (3+1) = 2.2587 kHz (with default values of I900 and I901) Remarks I902, in conjunction with I901 and I900, determines the frequency of the SERVO clock on PMAC2 (except for PMAC2 Ultralites, which use I992, I997, and I998 for this).
PMAC 2 Software Reference I903 Hardware Clock Control Channels 1-4 {PMAC2 only} Range 0 .. 4095 Units I903 = Encoder SCLK Divider .......................... + 8 * PFM_CLK Divider .......................... + 64 * DAC_CLK Divider .......................... + 512 * ADC_CLK Divider ..........................where: Encoder SCLK Frequency = 39.3216 MHz / (2 ^ Encoder SCLK Divider) PFM_CLK Frequency = 39.3216 MHz / (2 ^ PFM_CLK Divider) DAC_CLK Frequency = 39.
PMAC 2 Software Reference The pulse-frequency-modulation clock PFM_CLK controls the PFM circuitry that is commonly used for stepper drives. The maximum pulse frequency possible is 1/4 of the PFM_CLK frequency. The PFM_CLK frequency should optimally be set to the lowest value that can generate pulses at the maximum frequency required. The DAC_CLK controls the serial data frequency into D/A converters.
PMAC 2 Software Reference I904 PWM 1-4 Deadtime / PFM 1-4 Pulse Width Control {PMAC2 only} Range Units Default Remarks 0 .. 255 PWM Deadtime = [16 / PWM_CLK (MHz)] * I904 = 0.135 usec * I904 PFM Pulse Width = [1 / PFM_CLK (MHz)] * I904 = PFM_CLK_period (usec) * I904 15 PWM Deadtime = 0.135 usec * 15 = 2.03 usec PFM Pulse Width = [1 / 9.8304 MHz] * 15 = 1.
PMAC 2 Software Reference I906 PWM 5-8 Frequency Control {PMAC2 only} Range 0 .. 32767 Units PWM Frequency = 117,964.8 kHz / [4*I906+6] Default 6257 PWM Frequency = 117,964.8 / 26114 = 4.5163 kHz Remarks I906 controls the PWM frequency for machine interface channels 5-8. It does this by setting the limits of the PWM up-down counter, which increments and decrements at the PWMCLK frequency of 117,964.8 kHz (117.9648 MHz).
PMAC 2 Software Reference Remarks I907 controls the frequency of four hardware clock frequencies for the second group of four machine interface channels on PMAC2 (channels 5-8). It is a 12-bit variable consisting of four independent 3-bit controls, one for each of the clocks. Each of these clock frequencies can be divided down from a starting 39.3216 MHz frequency by powers of 2, from 1 to 128 times.
PMAC 2 Software Reference I908 PWM 5-8 Deadtime / PFM 5-8 Pulse Width Control {PMAC2 only} Range 0 .. 255 Units PWM Deadtime = 0.135 usec * I908 PFM Pulse Width = [1 / PFM_CLK (MHz)] * I908 = PFM_CLK_period (usec) * I908 Default 15 PWM Deadtime = 0.135 usec * 15 = 2.03 usec PFM Pulse Width = [1 / 9.8304 MHz] * 15 = 1.526 usec (with default I907) Remarks I908 controls the deadtime period between top and bottom on-times in PMAC2’s automatic PWM generation for machine interface channels 5-8.
PMAC 2 Software Reference Channel-Specific Gate Array I-Variables (For Channel n, where n = 1 to 8) I-Variables in the I910s through I980s control the hardware aspects of the “DSPGATE1” ASICs that provide the machine interface for channels 1 through 8. Each DSPGATE1 ASIC controls four channels. On an 8-channel PMAC2 (one that includes Option 1), I-variables for all 8 channels can be used.
PMAC 2 Software Reference The clockwise (CW) and counterclockwise (CCW) options simply control which direction counts up. If you get the wrong direction sense, simply change to the other option (e.g. from 7 to 3 or vice versa). Note: Changing the direction sense of the decode for the feedback encoder of a motor that is operating properly will result in unstable positive feedback and a dangerous runaway condition in the absence of other changes.
PMAC 2 Software Reference I9n2 Encoder n Capture Control {PMAC2 only} Range 0 .. 15 Units none Default 1 Remarks This parameter determines which input signal or combination of signals for channel n, and which polarity, triggers a hardware position capture of the counter for encoder n. If a flag input (home, limit, or user) is used, I9n3 determines which flag. Proper setup of this variable is essential for a successful home search, which depends on the position-capture function.
PMAC 2 Software Reference I9n3 Capture n Flag Select Control {PMAC2 only} Range 0 .. 3 Units none Default 0 Remarks This parameter determines which of the “Flag” inputs will be used for position capture (if one is used – see I902 etc.): ..........................0: HMFLn (Home Flag n) ..........................1: PLIMn (Positive End Limit Flag n) ..........................2: MLIMn (Negative End Limit Flag n) ..........................
PMAC 2 Software Reference I9n5 Channel n Encoder Index Gate State/Demux Control {PMAC2 only} Range Units Default Remarks 0-3 none 0 I9n5 is a 2-bit variable that controls two functions for the index channel of the encoder.
PMAC 2 Software Reference machine interface channel n. If a three-phase direct PWM command format is desired, I9n6 should be set to 0. If signal outputs for (external) digital-to-analog converters are desired, I9n6 should be set to 1 or 3. In this case, the C output can be used as a supplemental (non-servo) output in either PWM or PFM form. For example, it can be used to excite an MLDT sensor (e.g. TemposonicsTM) in PFM form. I9n7 Output n Invert Control {PMAC2 only} Range Units Default Remarks 0 ..
PMAC 2 Software Reference 1 = Invert direction signal (- = low; + = high) I9n8 controls the polarity of the direction output signal in the pulse-and-direction format for Channel n. It is active only if I9n6 has been set to 2 or 3 to use Output C as a pulsefrequency-modulated (PFM) output. If I9n8 is set to the default value of 0, a positive direction command provides a low output; if I9n8 is set to 1, a positive direction command provides a high output.
PMAC 2 Software Reference 3: ......................x4 quadrature decode CW 4: ......................Pulse and direction CCW 5: ......................x1 quadrature decode CCW 6: ......................x2 quadrature decode CCW 7: ......................x4 quadrature decode CCW 8: ......................Internal pulse and direction 9-11: .................Not used 12: ....................MLDT pulse timer control 13-15: ...............
PMAC 2 Software Reference 1: ......................x1 quadrature decode CW 2: ......................x2 quadrature decode CW 3: ......................x4 quadrature decode CW 4: ......................Pulse and direction CCW 5: ......................x1 quadrature decode CCW 6: ......................x2 quadrature decode CCW 7: ......................x4 quadrature decode CCW 8: ......................Internal pulse and direction 9-11: .................Not used 12: ....................
PMAC 2 Software Reference PWM Frequency = 117,964.8 / 26114 = 4.5173 kHz Note: On PMAC2 boards that are not “Ultralite”, I992 does not control the MaxPhase frequency; I900 does. On all PMAC2 boards, the PWM 1*-2* frequency is only important if you are using supplemental PWM channels. Remarks I992 controls the maximum phase clock frequency for the PMAC2 Ultralite, and the PWM frequency for supplementary machine interface channels 1* and 2*.
PMAC 2 Software Reference ADC_CLK Frequency = 39.3216 MHz / (2 ^ 4) = 2.4576 MHz Remarks I993 controls the frequency of three hardware clock frequencies – SCLK, PFM_CLK, and ADC_CLK – for the supplemental machine interface channels 1* and 2* on PMAC2 or PMAC2 Ultralite (there is no DAC_CLK on the supplemental channels, but it is referred to here for consistency with I903 and I907).
PMAC 2 Software Reference SCLK divider. Example The maximum encoder count frequency in the application is 800 kHz, so the 1.2288 MHz SCLK frequency is chosen. A pulse train up to 500 kHz needs to be generated, so the 2.4576 MHz PFM_CLK frequency is chosen. ADCs and DACs are not used, so the default DAC_CLK frequency of 4.9152 MHz and the default ADC_CLK frequency of 2.4576 MHz are chosen. From the table: ..........................SCLK Divider N: 5 ..........................PFM_CLK Divider N: 4 ...........
PMAC 2 Software Reference I994 ≅ 1 usec / 0.135 usec ≅ 7 With a 2.4576 MHz PFM_CLK frequency, a pulse width of 0.4 usec is desired: I994 ≅ 2.4576 MHz * 0.4 usec ≅ 1 I995 MACRO Ring Configuration/Status {PMAC2 only} Range $0000 .. $FFFF (0 - 65,535) Units none Default 0 Remarks I995 contains configuration and status bits for MACRO ring operation of the PMAC2.
PMAC 2 Software Reference I996 MACRO Node Activate Control {PMAC2 only} Range $000000 .. $FFFFFF (0 to 8,388,607) Units none Default $0 (all nodes de-activated) Remarks I996 controls which of the 16 MACRO nodes on the card are activated. It also controls the master station number, and the node number of the packet that creates a synchronization signal.
PMAC 2 Software Reference Bits 16-19 together specify the slave number part of the packet address (0-15) that will cause a sync lock pulse on the card, if this function is enabled by I995. This function is useful for a PMAC2 that is a slave or non-synchronizing master on the ring, to keep it locked to the synchronizing master. If the master address check for this node is disabled with I995, only the slave number must match to create the sync lock pulse.
PMAC 2 Software Reference Note: On PMAC2 boards that are not “Ultralite”, I997 does not control the Phase Clock frequency; I901 does. I997 has no effect on nonUltralite versions of the PMAC2. Specifically, I997 controls how many times the PHASE clock frequency is divided down from the maximum phase clock, whose frequency is set by I992. The PHASE clock frequency is equal to the maximum phase clock frequency divided by (I997+1).
PMAC 2 Software Reference Specifically, I998 controls how many times the SERVO clock frequency is divided down from the PHASE clock, whose frequency is set by I992 and I997. The SERVO clock frequency is equal to the PHASE clock frequency divided by (I998+1). I998 has a range of 0 to 15, so the frequency division can be by a factor of 1 to 16. The equation for I998 is: I 998 = PhaseFreq( kHz ) −1 ServoFreq( kHz ) The ratio of PHASE Clock Freq. to SERVO Clock Freq. must be an integer.
PMAC 2 Software Reference I1001 MACRO Ring Check Period Range 0 .. 255 Units servo cycles Default 0 Remarks I1001 determines the period for PMAC to evaluate whether there has been a MACRO ring failure. If I1001 is greater than 0, PMAC must receive a sufficient number of “sync node” packets (the packet is specified by I996), and not detect too many ring communications errors, in I1001 servo cycles.
PMAC 2 Software Reference The key difference between Type 0 and Type 1 protocols is in which node register is used for control and status flags. In the Type 0 protocol, the 1st register (24 bits) is used for the flags; in the Type 1 protocol, the 4th registers (16 bits) is used for the flags. The bits of I1002 must be set properly for any node whose auxiliary flag function is enabled by I1000.
PMAC 2 Software Reference PMAC can detect one ring communications error per real-time interrupt (I8+1 servo cycles) even if more than one error has occurred. Valid settings of I1004 are less than I1001/(I8+1). Regardless of the setting of I1004, if a ring error is detected on every check during the period, a “ring fault” is declared. PMAC can detect four types of MACRO communications errors: byte “violation” errors, packet checksum errors, packet overrun errors, and packet underrun errors.
PMAC 2 Software Reference I1011 Resolver Excitation Gain {Geo PMAC only} Range 0–3 Units Gain-1 Default 0 Remarks I1011 specifies the gain of the AC excitation output created by the Geo PMAC for resolvers, with the gain equal to (I1011 + 1). With a gain of 1, the nominal AC output has peak voltages of +/-2.5V. The following table lists the possible values of I1011 and the nominal output magnitudes they produce: I1011 0 1 2 3 Excitation Mag. +/-2.5V +/-5.0V +/-7.5V +/-10.
PMAC 2 Software Reference I1013 0 1 2 3 Motors to Check Temperature Neither Motor 1 only Motor 2 only Motors 1 & 2 If the Geo PMAC is checking temperature for the motor, the motor thermal sensor must be connected to pin 23 of the main encoder connector for the motor. I1015 SSI Clock Frequency Control {New, Geo PMAC only} Range 0–3 Units none Default 0 Remarks I1015 specifies the frequency of the digital clock output for the SSI-encoder interfaces on the Geop PMAC.
PMAC 2 Software Reference I1017 SSI Channel 1 Word Length Control {Geo PMAC only} Range 0–3 Units none Default 3 Remarks I1017 specifies the word length in bits from the first SSI-encoder interface on a Geo PMAC. The following table lists the possible values of I1017 and the word lengths they cause the Geo PMAC to request: I1017 0 1 2 3 Word Length 12 bits 16 bits 20 bits 24 bits I1017 is only used if the Geo PMAC’s Feedback Option 2 for absolute position feedback is ordered.
PMAC 2 Software Reference I1019 SSI Channel 2 Word Length Control {Geo PMAC only} Range 0–3 Units None Default 3 Remarks I1019 specifies the word length in bits from the second SSI-encoder interface on a Geo PMAC. The following table lists the possible values of I1019 and the word lengths they cause the Geo PMAC to request: I1019 0 1 2 3 Word Length 12 bits 16 bits 20 bits 24 bits I1019 is only used if the Geo PMAC’s Feedback Option 2 for absolute position feedback is ordered.
PMAC 2 Software Reference be expressed as: SegmentsAhead = StopTime( m sec) / 2 Ix16 = SegTime( m sec/ seg ) 2 * Ix17 * I 13 Because PMAC does not completely correct the lookahead buffer as each segment is added, the lookahead distance specified by I1020 must be slightly larger than this. The formula for the minimum value of I1020 that guarantees sufficient lookahead for the stopping distance is: I 1020 = 4 * SegmentsAhead 3 If a fractional value results, round up to the next integer.
PMAC 2 Software Reference I1021 Lookahead State Control {Option 6L Firmware Only} Range 0 – 15 Units none Default 0 Remarks I1021 permits direct control of the state of lookahead execution, without going through PMAC’s background command interpreter. This is useful for applications such as wire EDM, which can require very quick stops and reversals.
PMAC 2 Software Reference PMAC ON-LINE COMMAND SPECIFICATION Function Abort all programs and moves. Scope Global Syntax ASCII Value 1D; $01 Remarks This command aborts all motion programs and stops all non-program moves on the card. It also brings any disabled or open-loop motors to an enabled zero-velocity closed-loop state. Each motor will decelerate at a rate defined by its own motor I-variable Ix15.
PMAC 2 Software Reference Function Report all coordinate system status words Scope Global Syntax ASCII Value 3D, $03 Remarks This command causes PMAC to report the status words for all of the coordinate systems to the host in hexadecimal ASCII form, 12 characters per coordinate system starting with coordinate system 1, with the characters for each coordinate system separated by spaces.
PMAC 2 Software Reference Function Report following errors for all motors. Scope Global Syntax ASCII Value 6D; $06 Remarks This command causes PMAC to report the following errors of all motors to the host. The errors are reported in an ASCII string, each error scaled in counts, rounded to the nearest tenth of a count. A space character is returned between the reported error for each motor. Refer to the on-line F command for more detail as to how the following error is calculated.
PMAC 2 Software Reference Scope Global Syntax ASCII Value 9D; $09 (). Remarks This character, sometimes entered by typing the key, causes the most recently sent alphanumeric command line to PMAC to be re-commanded. It provides a convenient way to quicken a repetitive task, particularly when working interactively with PMAC in terminal mode. Other control-character commands cannot be repeated with this command.
PMAC 2 Software Reference is when the rotary buffer needs to be opened and closed repeatedly. After closing the rotary buffer, there is no chance that an on-line command can be mistaken for a buffer command. Example See Also 170 X10 Y20 F5 M3 X30 Y40 F5 ....
PMAC 2 Software Reference Function Enter command line. Scope Global Syntax ASCII Value 13D; $0D () Remarks This character, commonly known as (carriage return), causes the alphanumeric characters in the PMAC’s command-line-receive buffer to be interpreted and acted upon. (Control-character commands do not require a character to execute.
PMAC 2 Software Reference PMAC sends: ..... <121dec> Host sends:......... PMAC sends: ..... <121dec> See Also (121 = 74[J] + 47[/]; correct) (handshake and checksum again) Communications Checksum (Writing a Host Communications Program) I-variables I3, I4 On-line commands (), Function Feed hold on all coordinate systems. Scope Global Syntax ASCII Value 15D; $0F Remarks This command causes all coordinate systems in PMAC to undergo a feed hold.
PMAC 2 Software Reference Example 9999.5 10001.2 5.7 -2.1 0 0 0 0 See Also On-line commands P, , . Function Quit all executing motion programs. Scope Global Syntax ASCII Value 17D; $11 Remarks This command causes any and all motion programs running in any coordinate system to stop executing after the moves that have already been calculated are finished. Program execution may be resumed from this point with the R (run) or S (step) commands.
PMAC 2 Software Reference Function Step working motion programs in all coordinate systems. Scope Global Syntax ASCII Value 19D; $13 Remarks This command is the equivalent of issuing an S (step) command to all of the coordinate systems in PMAC. Each active coordinate system (i.e. one that has at least one motor assigned to it) that is to run a program must already be pointing to a motion program (initially this is done with a B{prog num} command).
PMAC 2 Software Reference 1......................... ........ X10 Y20 F5 M3 X30 Y40 F5 See Also ; PMAC responds ; Open rotary buffer ; Put program line in buffer ; Put program line in buffer Rotary Motion Program Buffers (Writing a Motion Program) On-line commands , OPEN ROT, CLOSE Function Report velocity of all motors. Scope Global Syntax ASCII Value 22D; $16 Remarks This command causes PMAC to report the velocities of all motors to the host.
PMAC 2 Software Reference If I63 is set to 0, there is no acknowledgment of the completion of the command. If I63 is set to 1, PMAC acknowledges the completion of the command with a to the host, permitting the host to know that it is safe to send the next command. PCOMM32 versions 10.21 and newer can take advantage of this feature to improve the speed of communications.
PMAC 2 Software Reference active port. If you are trying to establish communications with PMAC over the serial port, it is a good idea to send this character before any query commands to make sure PMAC will try to respond over the serial port. Regardless of which is the active output port, PMAC can accept commands over either port. It is the user’s responsibility not to garble commands by simultaneously commanding over both ports.
PMAC 2 Software Reference up/reset, Motor 1 is addressed. Note: A different motor may simultaneously be hardware selected from the control panel port for motor-specific control panel inputs, and that different motors may be addressed from programs within PMAC for COMMAND statements. ;Command Motor 1 to jog positive ;Command Motor 1 to jog negative ;Command Motor 2 to jog positive ;Command Motor 2 to stop jogging Example #1J+.................. J- ...................... #2J+..................
PMAC 2 Software Reference redefined to another axis in this coordinate system or a different coordinate system. Compare this command to UNDEFINE, which erases all the axis definitions in the addressed coordinate system, and to UNDEFINE ALL, which erases all the axis definitions in all coordinate systems. Example This example shows how the command can be used to move a motor from one coordinate system to another: &1 ...................... #4->.................. 5000A ............... #4->0 ...............
PMAC 2 Software Reference from the motor home position. (This is the starting offset; it can later be changed in several ways, including the PSET, {axis}=, ADIS, and IDIS commands). If the specified motor is currently assigned to an axis in a different coordinate system, PMAC will reject this command (reporting an ERR003 if I6=1 or 3). If the specified motor is currently assigned to an axis in the addressed coordinate system, the old definition will be overwritten by this new one.
PMAC 2 Software Reference $ Function Reset motor Scope Motor specific Syntax $ Remarks This command causes PMAC to initialize the addressed motor, performing any required commutation phasing and full reading of an absolute position sensor, leaving the motor in a closed-loop zero-velocity state. (For a non-commutated motor with an incremental encoder, the J/ command may also be used.
PMAC 2 Software Reference With jumper E51 in non-default state (ON for PMAC-PC, -Lite, -VME, OFF for PMACSTD), this command does a reset and re-initialization of the PMAC. On PMACs without the Option CPU section (not option 4A, 5A, or 5B), factory default I-variable values, conversiontable settings, and DPRAM and VMEbus addresses stored in the firmware (EPROM) are copied into active memory (RAM). (Values stored in EAROM are not lost; they are simply not used.
PMAC 2 Software Reference M-variable definitions, P-variable values, Q-variable values, and axis definitions are not affected by this command. They can be cleared by separate commands (e.g. M0..1023>*, P0..1023=0, Q0..1023=0, UNDEFINE ALL). This command is particularly useful if the program buffers have become corrupted. It clears the buffers and buffer pointers so the files can be re-sent to PMAC.
PMAC 2 Software Reference • • • • • • • • See Also The motor position bias register, which contains the difference between motor and axis zero positions, is set to 0. If Ix10 for the motor is greater than 0, specifying an absolute position read, the sensor is read as specified by Ix10 to set the motor actual position. The actual position value is set to the sensor value minus the Ix26 “home offset” parameter.
PMAC 2 Software Reference See Also Time-Base Control (Synchronizing PMAC to External Events) I-Variables I10, Ix93, Ix94, Ix95 On-line commands %{constant}, H Memory map registers X:$0808, X:$08C8, etc. %{constant} Function Set the addressed coordinate system’s feedrate override value.
PMAC 2 Software Reference &{constant} Function Address a coordinate system. Scope Global Syntax &{constant} where: • Remarks {constant} is an integer from 1 to 8, representing the number of the coordinate system to be addressed This command makes the coordinate system specified by {constant} the addressed coordinate system (the one on which on-line coordinate-system commands will act).
PMAC 2 Software Reference < {Option 6L firmware only} Function Scope Syntax Remarks > Back-up through Lookahead Buffer Coordinate-system specific < This command causes the PMAC to start reverse execution in the lookahead buffer for the addressed coordinate system. If the program is currently executing in the forward direction, it will be brought to a quick stop (the equivalent of the \ command) first.
PMAC 2 Software Reference / Function Halt program execution at end of currently executing move Scope Coordinate-system specific Syntax / Remarks This command causes PMAC to halt the execution of the motion program running in the currently addressed coordinate system at the end of the currently executing move, provided PMAC is in segmentation mode (I13>0).
PMAC 2 Software Reference ? Function Report motor status Scope Motor specific Syntax ? Remarks This command causes PMAC to report the motor status bits as an ASCII hexadecimal word. PMAC returns twelve characters, representing two status words. Each character represents four status bits. The first character represents Bits 20-23 of the first word; the second shows Bits 16-19; and so on, to the sixth character representing Bits 0-3.
PMAC 2 Software Reference Third character returned: Bit 15 Dwell in Progress: This bit is 1 when the motor’s coordinate system is executing a DWELL instruction. It is 0 otherwise. Bit 14 Data Block Error: This bit is 1 when move execution has been aborted because the data for the next move section was not ready in time. This is due to insufficient calculation time. It is 0 otherwise. It changes from 1 to 0 when another move sequence is started.
PMAC 2 Software Reference Bit 15 (Reserved for future use) Bit 14 Amplifier Enabled: This bit is 1 when the outputs for this motor’s amplifier are enabled, either in open-loop or closed-loop mode (refer to Open-Loop Mode status bit to distinguish between the two cases). It is 0 when the outputs are disabled (killed).
PMAC 2 Software Reference Bit 1 Warning Following Error: This bit is 1 if the following error for the motor exceeds its warning following error limit (Ix12). It stays at 1 if the motor is killed due to fatal following error. It is 0 at all other times, changing from 1 to 0 when the motor’s following error reduces to under the limit, or if killed, is re-enabled.
PMAC 2 Software Reference Bit 20 Y-Axis Incremental Mode: (See bit 22 description.) Second character returned: Bit 19 X-Axis Used in Feedrate Calculations: (See bit 23 description.) Bit 18 X-Axis Incremental Mode: (See bit 22 description.) Bit 17 W-Axis Used in Feedrate Calculations: (See bit 23 description.) Bit 16 W-Axis Incremental Mode: (See bit 22 description.) Third character returned: Bit 15 V-Axis Used in Feedrate Calculations: (See bit 23 description.
PMAC 2 Software Reference that have been calculated. Compare to the motor Running Program status bit. SECOND WORD RETURNED (Y:$0817, Y:$08D7, etc.) Seventh character returned: Bit 23 Program Hold Stop: This bit is 1 when a motion program running in the currently addressed Coordinate System is stopped using the ‘ \ ‘ command from a segmented move (LINEAR or CIRCLE mode with I13 > 0).
PMAC 2 Software Reference Bit 12 Dwell Move Buffered: (for internal use) Tenth character returned: Bit 11 Cutter Comp Outside Corner: This bit is 1 when the coordinate system is executing an added outside corner move with cutter compensation on. It is 0 otherwise. Bit 10 Cutter Comp Move Stop Request: This bit is 1 when the coordinate system is executing moves with cutter compensation enabled, and has been asked to stop move execution. This is primarily for internal use.
PMAC 2 Software Reference The states of bits 4, 1, and 0 in the different move modes are summarized in the following table: Mode Linear Rapid Spline Circle1 Circle2 PVT Bit 4 Bit 1 Bit 0 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 1 1 0 Example ?? ...................... A8002A020010 ........................... ........................... ........................... ........................... ........................... ........................... ...........................
PMAC 2 Software Reference taken long enough so that it was still executing when the next real-time interrupt came (I8+1 servo cycles later). It stays at 1 until the card is reset, or until this bit is manually changed to 0. If motion program calculations cause this, it is not a serious problem. If PLC 0 causes this (no motion programs running), it could be serious. Bit 21 Servo Active: This bit is 1 if PMAC is currently executing servo update operations. It is 0 if PMAC is executing other operations.
PMAC 2 Software Reference variable read or write operation with a device supporting parity had a parity error; it is 0 if the operation with such a device had no parity error. The bit status is indeterminate if the operation was with a device that does not support parity. Bit 5 MACRO Auxiliary Communications Error: This bit is 1 if the most recent MACRO auxiliary read or write command has failed. It is set to 0 at the beginning of each MACRO auxiliary read or write command.
PMAC 2 Software Reference Bits 12-14 (For Internal use) Tenth character returned: Bit 11 Fixed Buffer Full: This bit is 1 when no fixed motion (PROG) or PLC buffers are open, or when one is open but there are less than I18 words available. It is 0 when one of these buffers is open and there are more than I18 words available. Bits 8-10 (Internal use) Eleventh and twelfth characters returned: Bits 0-7 (Reserved for future use) Example ??? .................... 003000400000 ........................... .
PMAC 2 Software Reference power-up/reset, Board @0 is addressed. I1 must be set to 2 or 3 for this command to be accepted. Otherwise, ERR003 is reported. To address all cards simultaneously, use the @@ command. Query commands (those requiring a data response) will be rejected in this mode. This command should be used only when multiple PMAC cards are connected on a single serial cable. In this case, I-variable I1 should be set to 2 or 3 on all boards.
PMAC 2 Software Reference If PMAC is executing moves inside the special lookahead buffer when this command is received (Option 6L firmware only), the rate of deceleration is the fastest that does not exceed the Ix17 acceleration limit or any motor. In lookahead mode, reversal along the path is also then possible with the < command. Example &1B5R ............... \......................... #1J+.................. J/ ...................... J= ...................... R......................... \................
PMAC 2 Software Reference See Also Stop Commands (Making Your Application Safe) Control-Panel Port STOP/ Input (Connecting PMAC to the Machine) I-variables I13, I14, Ix15 On-line commands , H, J/, K, Q JPAN connector pin 10 ABS Function Select absolute position mode for axes in addressed coordinate system. Scope Coordinate-system specific Syntax ABS ABS ({axis}[,{axis}...
PMAC 2 Software Reference move; it simply assigns a new value to the position.. Internally, a position bias register is written to which creates this new position offset. PSET is the equivalent motion program command. Example X=0 ................... Z=5000 ; Call axis X’s current position zero ; Re-define axis Z’s position as 5000 See Also Axes, Coordinate Systems (Setting Up a Coordinate System) On-line command Z Program commands PSET, ADIS, IDIS.
PMAC 2 Software Reference CHECKSUM Function Report the firmware checksum value. Scope Global Syntax CHECKSUM CHKS Remarks This command causes PMAC to report the reference checksum value of the firmware revision that it is using. The value is reported as a hexadecimal ASCII string. This value was computed during the compilation of the firmware. It is mainly used for troubleshooting purposes.
PMAC 2 Software Reference CLEARFAULT Function Clear Geo PMAC fault display Scope Global Syntax CLEARFAULT CLRF Remarks This command clears the seven-segment fault display on the Geo PMAC controller/amplifier package. After this command is issued, the fault display will show a “0”. However, if the fault-causing condition is still present, the fault display will immediately show that fault number again. CLOSE Function Close the currently opened buffer.
PMAC 2 Software Reference Remarks This command is the equivalent of P0={constant}. That is, a value entered by itself on a command line will be assigned to P-variable P0. This allows simple operator entry of numeric values through a dumb terminal interface. Where the value goes is hidden from the operator; the PMAC user program must take P0 and use it as appropriate. Note: If a special table on PMAC (e.g.
PMAC 2 Software Reference On succeeding lines will be given the actual entries of the table as constants separated by spaces and or carriage return characters. The units of these entries are 1/16 count, and the entries must be integer values. The first entry is the correction at one spacing from the motor zero position (as determined by the most recent home search move or power-up/reset), the second entry is the correction two spacings away, and so on.
PMAC 2 Software Reference correction; if none is specified, PMAC assumes the target is the addressed motor; • {count length} is a positive integer representing the span of the table in encoder counts of the source motor. Remarks This command establishes a leadscrew (position) compensation table assigned to the addressed motor. The next {entries} constants sent to PMAC will be placed into this table. Once defined, the tables are enabled and disabled with the variable I51.
PMAC 2 Software Reference ERR003 DELETE GATHER DELETE ROTARY #8DEFINE COMP 500,20000 #7DEFINE COMP 256,#3D,32768 #6 DEFINE COMP 400,#5,#4,40000 #5 DEFINE COMP 200,#1D,#1,30000 I51=1 See Also ; PMAC rejects this command ; Clear other buffers to allow loading ; Uses motor 8 actual position as source and ; motor 8 as target, ; 500 entries, spacing ; of 40 counts ; Belongs to motor 7, uses motor 3 desired ; position as source, motor 7 as target, 256 ; entries, spacing of 128 counts ; Belongs to motor 6, uses
PMAC 2 Software Reference Remarks This command establishes a two-dimensional position compensation table assigned to the addressed motor. The next (Rows+1)*(Columns+1)-1 constants sent to PMAC will be placed into this table. This type of table is usually used to correct a motor position (X, Y, or Z-axis) as a function of the planar position of two motors (e.g. X and Y axes). Once defined, the tables are enabled and disabled with the variable I51.
PMAC 2 Software Reference as integer numerical constants in text form. The units of these entries are 1/16 count, and the entries must be integer values. The first entry is the correction at one column spacing from the zero position of the RowMotor, and the zero position of the ColumnMotor. The second entry is the correction at two column spacings from the zero position of the RowMotor, and the zero position of the ColumnMotor, and so on.
PMAC 2 Software Reference • entering (c+1) columns. If there is any possibility that you may go beyond an edge of the table, matching entries of Column 0 and Column c should have the same value to prevent a discontinuity in the correction. Column c in the table may simply be an added column beyond your real range of concern used just to prevent possible discontinuities at the edges of your real range of concern.
PMAC 2 Software Reference Remarks This command reserves space in PMAC’s memory or in DPRAM depending upon the setting of I45 for the data gathering buffer and prepares it for collecting data at the beginning of the buffer. If a data gathering buffer already exists, its contents are not erased but the Data Gather Buffer Storage address (Y:$0F20) is reinitialized to the Data Gather Buffer Start address (X:$0F20) and the LIST GATHER command will no longer function.
PMAC 2 Software Reference M-variable assignments that can be stored in the buffer Remarks This command establishes a lookahead buffer for the addressed coordinate system. It reserves memory to buffer both motion equations and “synchronous M-variable” output commands for the lookahead function. PMAC can only have one lookahead buffer at a time. The coordinate system that is addressed when the lookahead buffer is defined is the only coordinate system that can execute the special lookahead function.
PMAC 2 Software Reference synchronous M-variable assignments that can be stored in the lookahead buffer. Because these are evaluated at lookahead time, but not actually implemented until move execution time, they must be buffered. This section of the buffer must be large enough to store all of the assignments that could be made in the lookahead distance.
PMAC 2 Software Reference &2DEFINE ROT 100 &1DEFINE ROT 100 &1B0 &2B0...... OPEN ROT ........ ... ................. See Also 216 ; Create buffer for C.S. 2 ; Create buffer for C.S.
PMAC 2 Software Reference DEFINE TBUF Create a buffer for axis transformation matrices. Global DEFINE TBUF {constant} DEF TBUF {constant} where: • {constant} is a positive integer representing the number of transformation matrices to create Remarks This command reserves space in PMAC’s memory for one or more axis transformation matrices. These matrices can be used for real-time translation, rotation, scaling, and mirroring of the X, Y, and Z axes of any coordinate system.
PMAC 2 Software Reference Therefore, an entry in the torque compensation table is numerically 256 times bigger than the corresponding servo-loop torque output. The first entry is the correction at one spacing from the motor zero position (as determined by the most recent home search move or power-up/reset), the second entry is the correction two spacings away, and so on. PMAC computes corrections for positions between the table entries by a first-order interpolation between adjacent entries.
PMAC 2 Software Reference All other buffers except for fixed motion programs (PROG) and PLC programs must be deleted before PMAC will accept this command. There can be no rotary motion program, leadscrew compensation table, transformation matrix, data gathering or stimulus buffers in PMAC memory (any buffer created with a DEFINE command) for this command to be accepted. It is usually best to reinitialize the card with a $$$*** command before sending the DEFINE UBUFFER command.
PMAC 2 Software Reference See Also Backlash Compensation (Setting Up a Motor) I-variables I99, Ix85, Ix86 On-line command DEFINE BLCOMP DELETE COMP Function Erase leadscrew compensation table Scope Motor specific Syntax DELETE COMP DEL COMP Remarks This command causes PMAC to erase the compensation table belonging to the addressed motor, freeing that memory for other use.
PMAC 2 Software Reference Note: When the executive program’s data gathering function operates, it automatically reserves the entire open buffer space for gathered data. When this has happened, no additional programs or program lines may be entered into PMAC’s buffer space until the DELETE GATHER command has freed this memory. Example CLOSE ............... DELETE GATHER OPEN PROG 50 CLEAR ............... ...
PMAC 2 Software Reference DELETE ROTARY Function Delete rotary motion program buffer of addressed coordinate system Scope Coordinate-system specific Syntax DELETE ROTARY DEL ROT Remarks This command causes PMAC to erase the rotary buffer for the currently addressed coordinate system and frees the memory that had been allocated for it.
PMAC 2 Software Reference DELETE TCOMP Function Erase torque compensation table Scope Motor specific Syntax DELETE TCOMP DEL TCOMP Remarks This command causes PMAC to erase the torque compensation table for the addressed motor, freeing that memory for other use. PMAC will reject this command, reporting an ERR003 if I6=1 or 3, if any TCOMP buffer exists for a lower numbered motor, or if any BLCOMP, TBUF, ROTARY, or GATHER buffer exists. Any of these buffers must be deleted first.
PMAC 2 Software Reference Remarks This command causes PMAC to disable (stop executing) the specified uncompiled PLC program or programs. Execution can subsequently be resumed at the top of the program with the ENABLE PLC command.
PMAC 2 Software Reference EAVERSION Function Report full specification of firmware version Scope Global Syntax EAVERSION EAVER Remarks This command causes PMAC to report the full version of the firmware version that it is using. It always returns an 8-digit response, with the following meanings to the digits.
PMAC 2 Software Reference Remarks This command causes PMAC to enable (start executing) the specified uncompiled PLC program or programs at the top of the program. Execution of the PLC program may have been stopped with the DISABLE PLC, PAUSE PLC, or OPEN PLC command. PLC programs are specified by number, and may be used singularly in this command, in a list (separated by commas), or in a range of consecutively numbered programs.
PMAC 2 Software Reference Example ENABLE PLCC 1 ENA PLCC 2,7 ENABLE PLCC 3,21 ENABLE PLCC 0..31 See Also I-variable I5 On-line commands DISABLE PLC, DISABLE PLCC, ENABLE PLC, OPEN PLC, . Program commands DISABLE PLC, DISABLE PLCC, ENABLE PLC, ENABLE PLCC ENDGATHER Function Stop data gathering. Scope Global Syntax ENDGATHER ENDG Remarks This command causes data gathering to cease. Data gathering may start up again (without overwriting old data) with another GATHER command.
PMAC 2 Software Reference See Also Following Error (Servo Features) I-variables Ix11, Ix12, Ix67 On-line commands , P, V Suggested M-variable definitions Mx61, Mx62 Memory map registers D:$0028, D:$002C, etc.; D:$0840, etc. FRAX Function Specify the coordinate system’s feedrate axes. Scope Coordinate-system specific Syntax FRAX FRAX({axis}[,{axis}...
PMAC 2 Software Reference GATHER Function Begin data gathering. Scope Global Syntax GATHER [TRIGGER] GAT [TRIG] Remarks This command causes data gathering to commence according to the configuration defined in I-variables I19-I45. If TRIGGER is not used in the command, gathering will start on the next servo cycle. If TRIGGER is used, gathering will start on the first servo cycle after machine input MI2 goes true.
PMAC 2 Software Reference To do a hold of the currently addressed coordinate system in a manner that permits jogging of the motors in the coordinate system while in feed hold mode, refer to the \ “program hold” command. The H command is very similar in effect to a %0 command, except that deceleration is controlled by Ix95, not Ix94, and execution can be resumed with an R or an S command, instead of a %100 command. In addition, H works under external time base, whereas a %0 command does not.
PMAC 2 Software Reference HOMEZ Function Do a Zero-Move Homing Scope Motor specific Syntax HOMEZ HMZ Remarks This command causes the addressed motor to perform a zero-move homing search. Instead of jogging until it finds a pre-defined trigger, and calling its position at the trigger the home position, with this command, the motor calls wherever it is (commanded position) at the time of the command the home position.
PMAC 2 Software Reference Note: If a motion program buffer (including a rotary buffer) is open, I{constant} will be entered into that buffer for later execution, to be interpreted as a full-circle move command with a vector to the center along the X-axis (see Circular Moves in the Writing a Motion Program section). Example I5 ...................... ; Request the value of I5 2......................... ; PMAC responds I130..135...... ; Request the value of I130 through I135 60000 ...............
PMAC 2 Software Reference See Also Initialization (I) Variables (Computational Features) I-Variable Specifications On-line commands I{constant}, M{constant}={expression}, P{constant}={expression}, Q{constant}={expression} I{constant}=* Function Assign factory default value to an I-variable. Scope Global Syntax I{constant}[..
PMAC 2 Software Reference See Also Circular Moves (Writing a Motion Program) On-line command ABS Program commands ABS, INC J! Function Adjust motor commanded position to nearest integer count Scope Motor specific Syntax J! Remarks This command causes the addressed motor, if the desired velocity is zero, to adjust its commanded position to the nearest integer count value.
PMAC 2 Software Reference JFunction Jog Negative Scope Motor specific Syntax J- Remarks This command causes the addressed motor to jog in the negative direction indefinitely. Jogging acceleration and velocity are determined by the values of Ix19-Ix22 in force at the time of this command. PMAC will reject this command if the motor is in a coordinate system that is currently running a motion program (reporting ERR001 if I6 is 1 or 3). Example J- ...................... #5J-..................
PMAC 2 Software Reference J:{constant} Function Scope Syntax Jog Relative to Commanded Position Motor specific J:{constant} where: • {constant} is a floating point value specifying the distance to jog, in counts. Remarks This command causes a motor to jog the distance specified by {constant} relative to the present commanded position. Jogging acceleration and velocity are determined by the values of Ix19-Ix22 in force at the time of this command.
PMAC 2 Software Reference J= Function Jog to Prejog Position Scope Motor specific Syntax J= Remarks This command causes the addressed motor to jog to the last pre-jog and pre-handwheel-move position (the most recent programmed position). Jogging acceleration and velocity are determined by the values of Ix19-Ix22 in force at the time of this command. The register containing this position information for the motor is called the target position register (D:$080B for Motor 1, D:$08CB for Motor 2, etc.).
PMAC 2 Software Reference A variable jog-to-position can be executed with the J=* command. PMAC will reject this command if the motor is in a coordinate system that is currently running a motion program (reporting ERR001 if I6 is 1 or 3). Example J=0 .................... #4J=5000 ........
PMAC 2 Software Reference J=={constant} Function Jog to specified motor position and make that position the “pre-jog” position Scope Motor specific J=={constant} where: • {constant} is a floating point value specifying the location to which to jog, in encoder counts. Remarks This command causes the addressed motor to jog the position specified by {constant}. It also makes this position the pre-jog position, so it will be the destination of subsequent J= commands.
PMAC 2 Software Reference On-line commands J+, J-, J/, J=, J={constant}, J:{constant}, J=*, J:*, J^* J^* Function Scope Syntax Remarks Jog to specified variable distance from present actual position Motor specific J^* Example M172->L:$082B #1HMZ ............... M172=3000...... #1J^* ............... ........................... #1J^* ............... ........................... M172=P1*SIN(P2) #1J^* ...............
PMAC 2 Software Reference Remarks This command format permits a jog-until-trigger function. When the ^{constant} structure is added to any definite jog command, the jog move can be interrupted by a predefined trigger condition, and the motor will move to a point relative to the trigger position as specified by the final value in the command. The indefinite jog commands J+ and J- cannot be turned into jog-until-trigger moves.
PMAC 2 Software Reference K Function Kill motor output Scope Motor specific Syntax K Remarks This command causes PMAC to kill the outputs for the addressed motor. The servo loop is disabled, the DAC outputs are set to zero (Ix29 and/or Ix79 offsets are still in effect), and the AENA output for the motor is taken to the disable state (polarity is determined by E17). Closed-loop control of this motor can be resumed with a J command.
PMAC 2 Software Reference Note: If a motor is closed loop, the learned position will differ from the actual position by the amount of the position following error because commanded position is used. If a motor is open-loop or killed, PMAC automatically sets motor commanded position equal to motor actual position, so the LEARN function can be used regardless of the state of the motor. Example &1 ......... ; Address coordinate system 1 #1->10000X . ; Define motor 1 in C.S. 1 #2->10000Y ...
PMAC 2 Software Reference LIST BLCOMP Function List contents of addressed motor’s backlash compensation table Scope Motor specific Syntax LIST BLCOMP Remarks This command causes PMAC to report to the host the contents of the backlash compensation table belonging to the addressed motor. The values are reported in decimal ASCII form, multiple values to a line, with individual values separated by spaces. The LIST BLCOMP DEF command should be used to report the header information for this table.
PMAC 2 Software Reference The LIST COMP DEF command should be used to report the header information for this table. If there is no table for the addressed motor, PMAC will reject the command (reporting ERR003 if I6=1 or 3). The compensation table “belonging” to this motor may not affect this motor’s position or be affected by it ; Request contents of compensation table ; PMAC responds ; Continued response Example LIST COMP......
PMAC 2 Software Reference LIST GATHER Function Report contents of the data gathering buffer.
PMAC 2 Software Reference LIST PC Function List Program at Program Counter Scope Coordinate-system specific Syntax LIST PC[,[{constant}]] where: • {constant} is a positive integer representing the number of words in the program to be listed Remarks This command causes PMAC to list the program line(s) that it is (are) about to calculate in the addressed coordinate system, with the first line preceded by the program number and each line preceded by the address offset.
PMAC 2 Software Reference Because PMAC calculates ahead in a continuous sequence of moves, the LIST PC (Program Calculation) command will in general return a program line further down in the program than LIST PE will. LIST PE returns only the currently executing line. LIST PE, returns from the currently executing line to the end of the program. LIST PE,{constant} returns the specified number of words in the program, starting at the currently executing line.
PMAC 2 Software Reference program. If either {start}, {length}, or both, or just the comma, is included in the command, the listing of the program will include the buffer address offsets with each line. PLCs 0-15 can be protected by password. If the PLC is protected by password, and the proper password has not been given, PMAC will reject this command (reporting an ERR002 if I6=1 or 3).
PMAC 2 Software Reference beginning of the buffer. If {length} is specified, the reporting will continue for {length} words from the starting point. If either {start}, {length}, or both, or just the comma, is included in the command, the listing of the program will include the buffer address offsets with each line. Having a listing with these offsets can be useful in conjunction with later use of the PC (Program-Counter) and LIST PC commands.
PMAC 2 Software Reference default) Remarks See Also This command causes PMAC to report the contents of the rotary motion program buffer for the addressed coordinate system to the host. The contents are reported in ASCII text form. If I9 is 0 or 2, the contents are reported in short form (e.g. LIN). If I9 is 1 or 3, the contents are reported in long form (e.g. LINEAR). If neither {start} nor {length} is specified, the entire contents of the buffer will be reported.
PMAC 2 Software Reference 1. The number of entries in the table; 2. The span of the table in counts of the motor. If there is no table for the addressed motor, PMAC will reject the command (reporting ERR003 if I6=1 or 3). ; Request def of addressed motor backlash comp table ; Turbo PMAC responds; 100 entries in table, ; span is 100,000 counts Example LIST TCOMP DEF 100,100000 .
PMAC 2 Software Reference Remarks This command assigns the value on the right side of the equals sign to the specified Mvariable(s). It does not assign a definition (address) to the M-variable(s); that is done with the M{constant}->{definition command. If a motion or PLC program buffer is open when this command is sent to PMAC, it will be entered into the buffer for later execution. Example M1=1 M9=M9 & $20 M102=-16384 M1..
PMAC 2 Software Reference • the optional second{constant} must be at least as great as the first {constant} – it represents the number of the end of the range; Note: Spaces are not permitted between the M-variable name and the arrow double character in this command. Remarks This command causes PMAC to reference the specified M-variable or range of M-variables to its own definition word.
PMAC 2 Software Reference M161->D40 M162->D$2C See Also ; Motor 1 desired position register specified in decimal ; Motor 1 actual position register specified in hex M-Variables (Computational Features) On-line commands M{constant}, M{constant}->, M{constant}={expression} Program command M{constant}={expression} M{constant}->DP:{address} Function Dual-Ported RAM Fixed-Point M-Variable Definition Scope Global Syntax M{constant}[..
PMAC 2 Software Reference • • the optional second{constant} must be at least as great as the first {constant} – it represents the number of the end of the range; {address} is an integer constant from 0 to 65,535 ($0 to $FFFF if specified in hex). Note: No spaces are permitted between the M-variable name and the arrow double character in this command.
PMAC 2 Software Reference Example M165->L:$081F M265->L$0820 M265->L2080 See Also M-Variables (Computational Features) On-line commands M{constant}, M{constant}->, ..........M{constant}->D:{address}, M{constant}={expression} Program command M{constant}={expression} M{constant}->TWB:{multiplex address} Function Binary Thumbwheel-Multiplexer Definition Scope Global Syntax M{constant}[..
PMAC 2 Software Reference Scope Global Syntax M{constant}[..{constant}]->TWD[:]{multiplex address},{offset},{size}[.
PMAC 2 Software Reference Syntax M{constant}[..
PMAC 2 Software Reference input or output word. Adding 1 to the {multiplex address} designates it as a read-only variable and adding 2 designates it as a write-only variable. Note: No spaces are permitted between the M-variable name and the arrow double character in this command. Remarks This command causes PMAC to define the specified M-variable or range of M-variables to point to a 32-bit word of input or output serially multiplexed on the “thumbwheel” port on an Accessory 34x board.
PMAC 2 Software Reference Acc 34x manual) plus 2. Any attempt to read a TWS type M-variable defined in this manner (with bit one of its address set to 1) returns zero and the actual read is prevented by PMAC firmware.
PMAC 2 Software Reference M{constant}->X/Y:{address} Function Short Word M-Variable Definition Scope Global Syntax M{constant}[..{constant}]-> X[:]{address},{offset}[,{width}[,{format}]] M{constant}[..
PMAC 2 Software Reference 24 0 The format is irrelevant for 1-bit M-variables, and should not be included for them. If no format is specified, ‘U’ is assumed. Example ; Machine Output 1 M1->Y:$FFC2,8,1 M1->Y$FFC2,8 ; 1-bit (full spec.) ; 1-bit (short spec.) ; Encoder 1 Capture/Compare Register M103->X:$C003,0,24,U ; 24-bit (full spec.) M103->X$C003,24 ; 24-bit (short spec.
PMAC 2 Software Reference 2000 See Also ; PMAC reports value On-line commands MACROAUXREAD, MACROAUXWRITE PLC Program commands MACROAUXREAD, MACROAUXWRITE MACROAUXREAD Function Read MACRO auxiliary parameter value Scope Global Syntax MACROAUXREAD{NodeNum}{ParamNum}{Variable} MXR{NodeNum}{ParamNum}{Variable} where: • {NodeNum} is an integer constant from 0 to 15 specifying the slave number of the node • {ParamNum} is an integer constant from 0 to 65535 specifying the auxiliary parameter number for
PMAC 2 Software Reference MACROAUXWRITE Function Write MACRO auxiliary parameter value Scope Global Syntax MACROAUXWRITE{NodeNum}{ParamNum}{Variable} MXW{NodeNum}{ParamNum}{Variable} where: • {NodeNum} is an integer constant from 0 to 15 specifying the slave number of the node • {ParamNum} is an integer constant from 2 to 253 specifying the auxiliary parameter number for this node • {Variable} is the name of the PMAC variable (I, P, Q, or M) from which the parameter value is to be copied Remarks Thi
PMAC 2 Software Reference Remarks This command causes PMAC to issue the specified command to a MACRO slave station using the Type 1 auxiliary master-to-slave protocol. If {node #} is set to 15, the action automatically applies to all slave stations commanded from the PMAC. The MS CONFIG command allows the user to set and report a user-specified configuration value. This provides any easy way for the user to see if the MACRO station has already been configured to the user’s specifications.
PMAC 2 Software Reference Remarks This command causes PMAC to query the MACRO slave station at the specified node number using the MACRO Type 1 master-to-slave auxiliary protocol, and report back the value of the specified slave station variable to the host computer.
PMAC 2 Software Reference Example MS0,MI910=7 MS1,MI997=6528 MS8,C2=0 ; Causes slave to set value of Node 0 variable MI910 to 7 ; Causes slave to set value global variable MI997 to 6528 ; Causes slave at node 8 to reset MACROSLVREAD Function Read (copy) Type 1 MACRO auxiliary parameter value Scope Global Syntax MACROSLVREAD{node #},{slave variable},{PMAC variable} MSR{node #},{slave variable},{PMAC variable} where: • {node #} is a constant in the range 0 to 15 representing the number of the node on
PMAC 2 Software Reference • Remarks {PMAC variable} is the name of the variable on the PMAC from which the value of the slave station variable is to be copied This command causes PMAC to copy the value of the specified variable on PMAC to the specified variable of the MACRO slave station matching the specified node number on the PMAC, using the MACRO Type 1 master-to-slave auxiliary protocol. The variable on the PMAC can be any of the I, P, Q, or M-variables on the card.
PMAC 2 Software Reference O{constant} Function Open loop output Scope Motor specific Syntax O{constant} where: • {constant} is a floating-point value representing the magnitude of the output as a percentage of Ix69 for the motor, with a range of +/-100 Remarks This command causes PMAC to put the motor in open-loop mode and force an output of the specified magnitude, expressed as a percentage of the maximum output parameter for the motor (Ix69).
PMAC 2 Software Reference See Also This effect of this command differs from that of the OPEN ROTARY command. After the OPEN ROTARY command, ASCII text commands that can be buffered motion program commands are entered into the internal rotary program buffer, as well as binary-format commands (if I57=1). After the OPEN BINARY ROTARY command, no ASCII text commands can be entered into the internal rotary buffers. If a text command can be interpreted as an on-line command, it is executed immediately.
PMAC 2 Software Reference See Also PLC Program Features I-variable I5 On-line commands CLOSE, DELETE GATHER, ENABLE PLC OPEN PROGRAM Function Open a fixed motion program buffer for entry Scope Global Syntax OPEN PROGRAM {constant} OPEN PROG {constant} where: • {constant} is an integer from 1 to 32767 representing the motion program to be opened. Remarks This command causes PMAC to open the specified fixed (non-rotary) motion program buffer for entry or editing.
PMAC 2 Software Reference OPEN ROTARY Function Scope Syntax Open all existing rotary motion program buffers for entry Global OPEN ROTARY OPEN ROT Remarks This command causes PMAC to open all existing rotary motion program buffers (created with the DEFINE ROTARY command) for entry. Subsequent program commands valid for rotary motion programs are entered into the rotary program buffer of the coordinate system addressed at the time of that command.
PMAC 2 Software Reference See Also On-line commands , F, V Suggested M-variable definitions Mx62, Mx64, Mx67, Mx69 Memory map registers D:$002B, D:$0813, D:$002D, D:$0046, etc. P{constant} Function Scope Syntax Remarks Report the current P-variable value(s). Global P{constant}[..
PMAC 2 Software Reference PASSWORD={string} Function Enter/Set Program Password Scope Global Syntax PASSWORD={string} where: • {string} is a series of non-control ASCII characters (values from 32 decimal to 255 decimal). The password string is case sensitive. Remarks This command permits the user to enter the card’s password, or once entered properly, to change it.
PMAC 2 Software Reference PASSWORD=Reagan ERR002 PASSWORD=BUSH ERR002 PASSWORD=Bush LIST PLC 1 P1=P1+1 RETURN PASSWORD=Clinton LIST PLC 1 P1=P1+1 RETURN $$$ PASSWORD=Clinton LIST PLC 1 P1=P1+1 RETURN See Also ; Attempt to enter password ; PMAC rejects as incorrect password ; Attempt to enter password ; PMAC rejects as incorrect (wrong case) ; Attempt to enter password ; PMAC accepts as correct password ; Request listing of protected program ; PMAC responds because password matched ; This changes password
PMAC 2 Software Reference PC Function Report Program Counter Scope Coordinate-system specific Syntax PC Remarks This command causes PMAC to report the motion program number and address offset of the line in that program that it will next calculate (in the addressed coordinate system). It will also report the program number and address offset of any lines it must RETURN to if it is inside a GOSUB or CALL jump (up to 15 deep).
PMAC 2 Software Reference PMATCH Function Scope Syntax Remarks Re-match Axis Positions to Motor Positions Coordinate-system specific PMATCH This command causes PMAC to recalculate the axis starting positions for the coordinate system to match the current motor commanded positions (by inverting the axis definition statement equations and solving for the axis position). Normally this does not need to be done.
PMAC 2 Software Reference PR Function Scope Syntax Remarks Report Rotary Program Remaining Coordinate-system specific PR This command causes PMAC to report the number of program lines that have been entered in the rotary buffer for the addressed coordinate system but have not yet been executed (program remaining). This command can be useful for finding out if it is time to send new lines to the buffer. The value returned is accurate only if the rotary program buffer is open. Example B0 .................
PMAC 2 Software Reference Q{constant} Function Report Q-Variable Value Scope Coordinate-system specific Syntax Q{constant}[..
PMAC 2 Software Reference R Function Run Motion Program Scope Coordinate-system specific Syntax R Remarks This command causes the addressed PMAC coordinate system to start continuous execution of the motion program addressed by the coordinate system’s program counter from the location of the program counter. Alternately, it will restore operation after a ‘\’ or ‘H’ command has been issued (even if a program was or is not running).
PMAC 2 Software Reference • {constant} (optional) is an integer from 1 to 16 specifying the number of consecutive memory addresses to be read; if this is not specified, PMAC assumes a value of 1 Remarks This command causes PMAC to report the contents of the specified memory word address or range of addresses to the host (it is essentially a PEEK command).
PMAC 2 Software Reference The RESUME PLC command cannot be used to restart execution of a PLC program that has been stopped with a DISABLE PLC command. However, after a PLC has been stopped with a DISABLE PLC command, if a PAUSE PLC command is then given for that PLC, then a RESUME PLC command can be given to start operation at the point at which it has been stopped. Note that RESUME PLC 0..31 will restart all PLCs that have been paused, but not any that have been disabled.
PMAC 2 Software Reference If the coordinate system is already executing a motion program when this command is sent, the command puts the program in single-step mode, so execution will stop at the end of the latest calculated move. In this case, its action is the equivalent of the Q command. The coordinate system must be in a proper condition in order for PMAC to accept this command. Otherwise, PMAC will reject this command with an error; if I6 is 1 or 3, it will report the error number.
PMAC 2 Software Reference Note: PMAC does not provide the acknowledging handshake character to the SAVE command until it has finished the saving operation, a significant fraction of a second later on PMACs with battery backup and about 5 to 10 seconds on PMACs with flash backup. The host program should be prepared to wait much longer for this character than is necessary on most commands. For this reason, it is usually not a good idea to include the SAVE command as part of a “dump” download of a large file.
PMAC 2 Software Reference SIZE Function Report the amount of unused buffer memory in PMAC. Scope Global Syntax SIZE Remarks This command causes PMAC to report to the host the amount of unused long words of memory available for buffers. If no program buffer (motion, PLC or rotary buffer) is open, this value is reported as a positive number. If a buffer is currently open, the value is reported as a negative number. Example DEFINE GATHER SIZE.................. 0.........................
PMAC 2 Software Reference {blank} no ladder-logic diagram support LDs Ladder-logic diagram support {Clock multiplier}: CLK Xn where n is the multiplication of crystal frequency to CPU frequency Example TYPE PMAC1, ISA/VME, BATTERY, PID, CLK X1 TYPE PMAC2, ISA, FLASH, ESA, CLK X3 TYPE PMACUL, VME, FLASH, PID, LDs, CLK X2 See Also On-line commands VERSION, DATE UNDEFINE Function Erase Coordinate System Definition Scope Coordinate-system specific Syntax UNDEFINE UNDEF Remarks This command causes PM
PMAC 2 Software Reference 1000X ............... UNDEFINE ALL &1#1->............. 0......................... &2#5->............. 0 See Also ; PMAC responds ; Erase all axis definitions ; Request axis definition of Motor 1 in C.S. 1 ; PMAC responds that there is no definition ; Request axis definition of Motor 5 in C.S. 2 ; PMAC responds that there is no definition Axes, Coordinate Systems (Setting Up a Coordinate System) On-line commands #{constant}->0, #{constant}->, UNDEFINE.
PMAC 2 Software Reference Example VERSION .......... 1.12D See Also Resetting PMAC (Talking to PMAC) On-line command DATE, TYPE ; Ask PMAC for firmware version ; PMAC responds W{address} Function Write value(s) to a specified address(es). Scope Global Syntax W{address,{constant} [,{constant}...
PMAC 2 Software Reference Example ... 2001 5002 3000 0 0 0 0 0 Z......................... ........ 1 2 -1 0 0 0 0 0 See Also On-line commands {axis}={constant} Memory map registers D:$0813, D:$08D3, etc. Suggested M-variable definitions Mx64.
PMAC 2 Software Reference PMAC On-Line Command Specification 291
PMAC 2 Software Reference PMAC PROGRAM COMMAND SPECIFICATION {axis}{data}[{axis}{data}...] Function Position-Only Move Specification Type Motion program (PROG and ROT) Syntax {axis}{data}[{axis}{data}...] where: • {axis} is the character specifying which axis (X, Y, Z, A, B, C, U, V, W). • {data} is a constant (no parentheses) or an expression (in parentheses) representing the end position or distance. • [{axis}{data}...] is the optional specification of simultaneous movement for more axes.
PMAC 2 Software Reference Remarks In the case of PVT (position, velocity, time) motion mode, both the ending position and velocity are specified for each segment of each axis. The command consists of one or more groupings of axes labels with two data items separated by a colon character. The first data item for each axis is the scaled ending position or distance (depending on whether the axis is in absolute [ABS or incremental [INC] mode. Position scaling is determined by the axis definition statement).
PMAC 2 Software Reference The second part of the move description for an axis (after the ^ sign) specifies the distance from the trigger position to end the post-trigger move if a trigger is found. The distance is expressed in the scaled axis user units. Each motor assigned to an axis specified in the command, executes a separate moveuntil-trigger. All the assigned motors will start together, but each can have its own trigger condition.
PMAC 2 Software Reference Remarks For a blended circular mode move, both the move endpoint and the vector to the arc center are specified. The endpoint is specified just as in a LINEAR mode move, either by position (referenced to the coordinate system origin), or distance (referenced to the starting position). The center of the arc for a circular move must also be specified in the move command. This is usually done by defining the vector to the center.
PMAC 2 Software Reference Example X5000 Y3000 I1000 J1000 X(P101) Z(P102) I(P201) K(P202) X10 I5 X10 Y20 C5 I5 J5 Y5 Z3 R2 J10 ; Specifies a full circle of 10 unit radius See Also Circular Moves (Writing a Motion Program) I-variables I13, Ix87, Ix88, Ix89, Ix90 Program commands NORMAL, ABS, INC, CIRCLE1, CIRCLE2, TA, TS, TM, F A{data} Function Type Syntax Remarks A-Axis Move Motion program (PROG or ROT) A{data} where: • {data} is a floating-point constant or expression representing the position or di
PMAC 2 Software Reference See Also Circular Moves (Writing a Motion Program) On-line commands ABS, INC. Program commands {axis}{data}, {axis}{data}{vector}{data}, INC. ADDRESS Function Motor/Coordinate System Modal Addressing Type PLC programs 1 to 31 only Syntax ADDRESS [#{constant}][&{constant}] ADR [#{constant}][&{constant}] where: • {constant} is an integer constant from 1 to 8 representing the motor (#) number or the coordinate system (&) number to be addressed.
PMAC 2 Software Reference This command is almost equivalent to a PSET X(Q{data}) Y(Q({data}+1)) Z(Q({data}+2)) command, except that ADIS does not force a stop between moves as PSET does. Example See Also Q20=7.5 Q21=12.5 Q22=25 ADIS 20 ; This makes the current X position 7.5, Y 12.
PMAC 2 Software Reference Remarks This command loads the currently selected (with TSEL) transformation matrix for the coordinate system with rotation/scaling values contained in the nine Q-variables starting with the specified one. This has the effect of renaming the current commanded X, Y, and Z axis positions (from the latest programmed move) by multiplying the XYZ vector by this matrix.
PMAC 2 Software Reference Remarks This statement allows for multiple moves to be done on a single step command. Execution on a step command will proceed until the next BLOCKSTOP statement in the program (without BLOCKSTART, only a single servo command is executed on a step command). Also, if Ix92=1 (move blending disabled), all moves between BLOCKSTART and BLOCKSTOP will be blended together. This does not affect how a program is executed from a run command if Ix92=0.
PMAC 2 Software Reference CALL Function Jump to Subprogram With Return Type Motion program (PROG and ROT) Syntax CALL{data} [{letter}{data}...] where: • the first {data} is a floating-point constant or expression from 1.00000 to 32767.
PMAC 2 Software Reference Upon the return, X10 Y10 would be executed as a move according to the move mode in force, which is LINEAR. If the specified program and/or line label do not exist, the CALL command is ignored, and the program continues as if it were not there. No error is generated.
PMAC 2 Software Reference language. Example See Also CCR0.25 CC1 X10 Y10 X10 Y20 X20 Y20 X20 Y10 X10 Y10 CC0 X0 Y0 OPEN PROG 1000 ...
PMAC 2 Software Reference See Also code. Program commands CC1, CC2, CC0, D{data}, NORMAL CIRCLE1 Function Set Blended Clockwise Circular Move Mode Type Motion program (PROG and ROT) Syntax CIRCLE1 CIR1 Remarks This command puts the program into clockwise circular move mode. The plane for the circular interpolation is defined by the most recent NORMAL command, which has also defined the sense of clockwise and counterclockwise in the plane.
PMAC 2 Software Reference be linearly interpolated.
PMAC 2 Software Reference for a new command, program execution is temporarily halted until the new command can be placed on the queue. Also, commands that generate a response to the host (including errors if I6 is not equal to 2) potentially can fill up the response queue if there is no host or the host is not prepared to read the responses. This will temporarily halt program execution until the response queue is emptied.
PMAC 2 Software Reference COMMAND^{letter} Function Program Control-Character Command Issuance Type Motion program (PROG or ROT), PLC program Syntax COMMAND^{letter} CMD^{letter} where: • {letter} is a letter character from A to Z (upper or lowercase) representing the corresponding control character. Remarks This statement causes the motion program to issue a control-character command as if it came from the host. All control-character commands are global, so there are no addressing concerns.
PMAC 2 Software Reference from disturbing the normal host communications protocol. If PMAC variable I64 is set to 1, any response sent to the host as a result of an internal COMMAND statement is preceded by a character, making it easier for the host computer to tell that this is an unsolicited response. Example CMD^D would disable all PLC programs (equivalent to issuing a from the host). CMD^K would kill (disable) all motors on PMAC.
PMAC 2 Software Reference milliseconds. Remarks This command causes PMAC to keep the command positions of all axes in the coordinate system constant (no movement) for the time specified in {data}. There are three differences between DELAY and DWELL. First, if DELAY comes after a blended move, the TA deceleration time from the move occurs within the DELAY time, not before it.
PMAC 2 Software Reference See Also I-variable I5 On-line commands ENABLE PLC, DISABLE PLC, ENABLE PLCC, DISABLE PLCC, Program command ENABLE PLC, DISABLE PLCC, ENABLE PLCC DISABLE PLCC {constant}[,{constant}...] Function Disable Compiled PLC Programs Type Motion program (PROG or ROT), PLC program (uncompiled or compiled), except for PLC0 and PLCC0 Syntax DISABLE PLCC {constant}[,{constant}...] DISABLE PLCC {constant}[..{constant}] DIS PLCC {constant}[,{constant}...] DIS PLCC {constant}[.
PMAC 2 Software Reference • {message} is the ASCII text string to be displayed. Remarks This command causes PMAC to send the string contained in {message} to the display port (J1 connector) for the liquid-crystal or vacuum-fluorescent display (Accessory 12 or equivalent). The optional constant value specifies the starting point for the string on the display. It has a range of 0 to 79, where 0 is upper left, 39 is upper right, 40 is lower left, and 79 is lower right.
PMAC 2 Software Reference DWELL Function Dwell for Specified Time Type Motion program (PROG and ROT) Syntax DWELL{data} DWE{data} where: • {data} is a non-negative floating point constant or expression representing the dwell time in milliseconds. Remarks This command causes the card to keep the commanded positions of all axes in the coordinate system constant for the time specified in {data}. There are three differences between DWELL and the similar DELAY command.
PMAC 2 Software Reference condition. ELSE lines can take two forms (only the first of which is valid in a PLC program): With no statement following on that line, all subsequent statements down to the next ENDIF statement will be executed provided that the preceding IF condition is false. ELSE {statement} [{statement} ...] ENDIF With a statement or statements following on that line, the single statement will be executed provided that the preceding IF condition is false.
PMAC 2 Software Reference ENABLE PLC Function Type Syntax Enable PLC Buffer(s) Motion program (PROG and ROT), PLC program ENABLE PLC {constant}[,{constant}...] ENA PLC {constant}[,{constant}...] ENABLE PLC {constant}[..{constant}] ENA PLC {constant}[..{constant}] where: • {constant} is an integer from 0 to 31 representing the program number. Remarks This command causes PMAC to enable (start executing) the specified uncompiled PLC program or programs at the top of the program.
PMAC 2 Software Reference See Also I-variable I5 On-line commands ENABLE PLC, DISABLE PLC, ENABLE PLCC, DISABLE PLCC, Program command ENABLE PLC, DISABLE PLC, DISABLE PLCC ENDIF Function Mark End of Conditional Block Type Motion program (PROG only), PLC program Syntax ENDIF ENDI Remarks This statement marks the end of a conditional block of statements begun by an IF statement.
PMAC 2 Software Reference PLCs). The next scan of this PLC will start at the matching WHILE statement. In the execution of a motion program, if PMAC finds two jumps backward (toward the top) in the program while looking for the next move command, PMAC will pause execution of the program and not try to blend the moves together. It will go on to other tasks and resume execution of the motion program on a later scan. Two statements can cause such a jump back: ENDWHILE and GOTO (RETURN does not count).
PMAC 2 Software Reference velocity in the plane or in 3D space, regardless of movement direction. Note: If only non-feedrate axes are commanded to move in a feedrate-specified move, PMAC will compute the vector distance (and the move time as zero) and will attempt to do the move in the acceleration time (TA or 2*TS). Example F100 F31.
PMAC 2 Software Reference INC X30 Y40 Z10 F100 2 2 Vector distance is SQRT(30 + 40 ) = 50 mm. At a speed of 100 mm/sec, move time (unblended) is 0.5 sec. X-axis speed is 30/0.5 = 60 mm/sec; Y-axis speed is 40/0.5 = 80 mm/sec; Z-axis speed is 10/0.5 = 20 mm/sec. Z20 2 2 Vector distance is SQRT(0 +0 ) = 0 mm. Move time (unblended) is 0.0 sec, so Z-axis speed is limited only by acceleration parameters. FRAX(X,Y,Z) INC X-30 Y-40 Z120 F65 2 2 2 Vector distance is SQRT(-30 + -40 +120 ) = 130 mm.
PMAC 2 Software Reference GOSUB Function Unconditional Jump With Return Type Motion program (PROG only) Syntax GOSUB{data} where: • {data} is a constant or expression representing the line label to jump to. • {letter} (optional) is any letter character except N or O.
PMAC 2 Software Reference If the specified line label is not found, the program will stop, and the coordinate system’s Run-Time-Error bit will be set. Note: Modern philosophies of the proper structuring of computer code strongly discourage the use of GOTO, because of its tendency to make code undecipherable.
PMAC 2 Software Reference Note: Unlike an on-line homing command, the motor numbers in a program homing command are specified after the word HOME itself, not before. In addition, an on-line homing command simply starts the homing search – it does not give any indication when the search is complete; but a program homing command automatically recognizes the end of the search, and then continues on in the program. A PLC program can only issue an on-line home command. Example See Also HOME1 HM1,2,3 HOME1..
PMAC 2 Software Reference See Also Homing-Search Moves (Basic Motor Moves) On-line motor command HOME, HOMEZ Program command HOME I{data} Function I-Vector Specification for Circular Moves or Normal Vectors Type Motion program (PROG or ROT) Syntax I{data} where: • {data} is a floating-point constant or expression representing the magnitude of the I-component of the vector in scaled user axis units.
PMAC 2 Software Reference See Also How PMAC Executes a Motion Program (Writing a Motion Program) On-line command I{constant}={expression} Program commands M{constant}={expression), P{constant}={expression}, Q{constant}={expression}, M{constant}=={expression} IDIS{constant} Function Incremental displacement of X, Y, and Z axes Type Motion program (PROG and ROT) Syntax IDIS{constant where: • {constant} is an integer representing the number of the first of three consecutive Q-variables to be used in th
PMAC 2 Software Reference If the condition is false, it will not execute those statements. It will only execute any statements on a false condition if the line immediately following begins with ELSE. If the next line does not begin with ELSE, there is an implied ENDIF at the end of the line.
PMAC 2 Software Reference Remarks The INC command without arguments causes all subsequent command positions in motion commands for all axes in the coordinate system running the motion program to be treated as incremental distances from the latest command point. This is known as incremental mode, as opposed to the default absolute mode. An INC statement with arguments causes the specified axes to be in incremental mode, and all others stay the way they were before.
PMAC 2 Software Reference Example Create a 3x3 matrix to rotate the XY plane by 30 degrees about the origin Q40=COS(30) Q41=SIN(30) Q42=0 Q43=-SIN(30) Q44=COS(30) Q45=0 Q46=0 Q47=0 Q48=1 IROT 40 ; Implement the change, rotating 30 degrees from current IROT 40 ; This rotates a further 30 degrees Create a 3x3 matrix to scale the XYZ space by a factor of 3 Q50=3 Q51=0 Q52=0 Q53=0 Q54=3 Q55=0 Q56=0 Q57=0 Q58=3 IROT 50 ; Implement the change, scaling up by a factor of 3 IROT 50 ; Scale up by a further factor o
PMAC 2 Software Reference In a NORMAL command, this specifies the component of the normal vector to the plane of circular interpolation and tool radius compensation that is parallel to the Y-axis. Example X10 Z20 I5 K5 Z(2*P1) K(P1) K33.333 NORMAL K-1 See Also specifies a full circle whose center is 33.
PMAC 2 Software Reference Note: In a motion program, the assignment is done as the line is processed, not necessarily in order with the actual execution of the move commands on either side of it. If it is in the middle of a continuous move sequence, the assignment occurs one or two moves ahead of its apparent place in the program (because of the need to calculate ahead in the program).
PMAC 2 Software Reference See Also How PMAC Executes a Motion Program, Synchronous Variable Assignment (Writing a Motion Program) Program Commands I{constant}=, P{constant}=, Q{constant}=, M{constant}=. M{constant}&={expression} Function M-Variable And-Equals Assignment Type Motion program (PROG and ROT) Syntax M{constant}&={expression} where: • {constant} is an integer constant from 0 to 1023 representing the number of the M-variable.
PMAC 2 Software Reference Note: This command may not be used with any of the thumbwheel-multiplexer forms of M-variables (TWB, TWD, TWR, or TWS), or with any of the double-word forms (L, D, or F). Remember that if you use this M-variable in further expressions before the next move in the program is started, you will not get the value assigned in this statement.
PMAC 2 Software Reference M{data} Function Machine Code (M-Code) Type Motion program Syntax M{data} where: • {data} is a floating-point constant or expression in the range 0.000 to 999.999, specifying the program number and the line label to jump to. Remarks PMAC interprets this statement as a CALL 10n1.({data’}*1000) command, where n is the hundreds’ digit of {data}, and {data’} is the value of {data} without the hundred’s digit (modulo 100 in mathematical terms).
PMAC 2 Software Reference In order to access the auxiliary registers of a MACRO node n, bit n of I1000 must be set to 1. If the slave node returns an error message or the slave node does not respond within 32 servo cycles, PMAC will note an error condition. Bit 5 of global status register X:$0003 is set to report such a MACRO auxiliary communications error. Register X:$0798 holds the error value.
PMAC 2 Software Reference MACROSLVREAD Function Read (copy) Type 1 MACRO auxiliary parameter value Type Uncompiled PLC 1 – 31 only Syntax MACROSLVREAD{node #},{slave variable},{PMAC variable} MSR{node #},{slave variable},{PMAC variable} where: • {node #} is a constant in the range 0 to 15 representing the number of the node on the PMAC matching the slave node to be accessed. • {slave variable} is the name of the variable on the slave station whose value is to be reported.
PMAC 2 Software Reference Remarks This command causes PMAC to copy the value of the specified variable on PMAC to the specified variable of the MACRO slave station matching the specified node number on the PMAC, using the MACRO Type 1 master-to-slave auxiliary protocol. The variable on the PMAC can be any of the I, P, Q, or M-variables on the card.
PMAC 2 Software Reference NORMAL Function Type Syntax Remarks Example Define Normal Vector to Plane of Circular Interpolation and Cutter Radius Compensation Motion program (PROG and ROT) NORMAL {vector}{data} [{vector}{data}...] NRM {vector}{data} [{vector}{data}...] where: • {vector} is one of the letters I, J, and K, representing components of the total vector parallel to the X, Y, and Z axes, respectively.
PMAC 2 Software Reference A line only needs a label in order to jump to that line. Line labels do not have to be in any sort of numerical order. The label must be at the beginning of a line. Remember that each location label takes up space in PMAC memory. Example O1 O65537 X1000 See Also Subroutines and Subprograms (Writing a Motion Program) On-line command B{constant} Program commands O{constant}, GOTO, GOSUB, CALL, G, M, T, D.
PMAC 2 Software Reference P{constant}={expression} Function Set P-Variable Value Type Motion program (PROG and ROT) Syntax P{constant}={expression} where: • {constant} is an integer constant from 0 to 1023 representing the P-variable number. • {expression} represents the value to be assigned to this P-variable. Remarks This command sets the value of the specified P-variable to that of the expression on the right side of the equals sign.
PMAC 2 Software Reference PLC programs are specified by number, and may be specified in a command singularly, in a list (separated by commas), or in a range of consecutively numbered programs. If no buffer is open when this command is sent to PMAC, it will be executed immediately as an on-line command. Example PAUSE PLC 1 PAUSE PLC 4,5 PAUSE PLC 7..20 PAU PLC 3,8,11 PAU PLC 0..
PMAC 2 Software Reference Example PRELUDE1 CALL10 ; Insert a CALL10 before subsequent moves X10 Y20 ; Implicit CALL10 before this move X20 Y30 ; Implicit CALL10 before this move ... OPEN PROG 10 CLEAR ; Subprogram Z-1 ; Move down DWELL 500 ; Hold position Z1 ; Move up RETURN ... G71 X7 Y15 P5 ; G71 calls PROG 1000 N71000 X8 Y16 P5 ; With PRELUDE, G71 is implied (modal) X9 Y15 P8 ; With PRELUDE, G71 is implied (modal) G70 ; Stop modal canned cycles ... OPEN PROG 1000 ...
PMAC 2 Software Reference Example See Also X10Y20 PSET X0 Y0 ; Call this position (0,0) N92000 READ(X,Y,Z) PSET X(Q124)Y(Q125)Z(Q126) ; To implement G92 in PROG 1000 ; Equivalent of G92 X..Y..Z. Axes (Setting Up a Coordinate System) On-line command {axis}={constant} Program commands ADIS, AROT, IDIS, IROT Suggested M-variable definitions Mx64 Memory map registers D:$0813, D:$08D3, etc.
PMAC 2 Software Reference Q{constant}={expression} Function Set Q-Variable Value Type Motion program (PROG and ROT); PLC program Syntax Q{constant}={expression} where: • {constant} is an integer value from 0 to 1023 representing the Q-variable number • {expression} represents the value to be assigned to the specified Q-variable. Remarks This command sets the value of the specified Q-variable to that of the expression on the right side of the equals sign.
PMAC 2 Software Reference Note: If you use the AROT or IROT commands to scale the coordinate system, do not use the radius center specification for circle commands. The radius does not get scaled. Use the I, J, K vector specification instead. If the distance from the start point to the end point is more than twice the magnitude specified in {data}, there is no circular arc move possible.
PMAC 2 Software Reference See Also Rapid Mode Moves (Writing a Motion Program) I-variables I50, Ix16, Ix19, Ix22 Program commands LINEAR, CIRCLE, PVT, SPLINE READ Function Read Arguments for Subroutine Type Motion program (PROG only) Syntax READ({letter},[{letter}...]) where: • {letter} is any letter of the English alphabet, except N or O, representing the letter on the calling program line whose following value is to be read into a variable.
PMAC 2 Software Reference V Q122 W Q123 X Q124 Y Q125 Z Q126 *Cannot be used 21 22 23 24 25 2,097,15 4,194,304 8,388,608 16,777,216 33,554,432 $200000 $400000 $800000 $1000000 $2000000 Any letter may be READ except N or O, which are reserved for line labels (and should only be at the beginning of a line). If a letter value is read from the calling line, the normal function of the letter (e.g., an axis move) is overridden, so that letter serves merely to pass a parameter to the subroutine.
PMAC 2 Software Reference The RESUME PLC command cannot be used to restart execution of a PLC program that has been stopped with a DISABLE PLC command. However, after a PLC has been stopped with a DISABLE PLC command, if a PAUSE PLC command is then given for that PLC, then a RESUME PLC command can be given to start operation at the point at which it has been stopped.
PMAC 2 Software Reference S{data} Function Spindle data command Type Motion program (PROG and ROT) Syntax S{data} where: • {data} is a constant or expression representing the value to be passed to the storage variable for later use. Remarks This command causes the value in {data} to be loaded in variable Q127 for the coordinate system executing the motion program. It takes no other action. It is intended to pass spindle speed data in machine tool programs.
PMAC 2 Software Reference Note: If there is no host on the port to which the message is sent, or the host is not ready to read the message, the message is left in the queue. If several messages back up in the queue this way, the program issuing the messages will halt execution until the messages are read. This is a common mistake when the SEND command is used outside of an EdgeTriggered condition in a PLC program. See Writing A PLC Program in Chapter 3 for more details.
PMAC 2 Software Reference ; To prevent repetition of message P188=1 ENDIF ELSE P188=0 ENDIF ; F.E.
PMAC 2 Software Reference There is no SENDV command for the VME bus exclusively. The SEND command must be used with the VME port as the active response port. When PMAC powers up or resets, the active response port is the serial port. When any command is received over a bus port, the active response port becomes the bus port. PMAC must then receive a command to cause the response port to revert back to the serial port.
PMAC 2 Software Reference CMD"#4HM" WHILE(M440=0) ENDWHILE SETPHASE4 See Also ; Homing searach move ; Wait for motor in-position ; Force phase value in Power-On Phasing Search (Setting Up PMAC Commutation) I-variables Ix75, Ix81 On-Line Command SETPHASE SPLINE1 Function Put program in uniform cubic spline motion mode Type Motion program (PROG and ROT) Syntax SPLINE1 Remarks This modal command puts the program in cubic spline mode.
PMAC 2 Software Reference X32 Y21 TA120 X43 Y26 TA87 X50 Y30 TA62 DWELL100 RAPID X0 Y0 See Also Cubic Spline Mode (Writing a Motion Program) I-variable Ix87 Program commands LINEAR, CIRCLE, RAPID, PVT, SPLINE1, TA STOP Function Type Syntax Remarks Stop program execution Motion program (PROG) STOP Example A10 B10 A20 B0 STOP A0 B0 See Also On-line commands , Q, R, S Program commands BLOCKSTART, BLOCKSTOP This command suspends program execution, whether started by run or step, keeping the
PMAC 2 Software Reference TA{data} Function Set Acceleration Time Type Motion program (PROG and ROT) Syntax TA{data} where: • {data} is a constant or expression representing the acceleration time in milliseconds This statement specifies the commanded acceleration time between blended moves (LINEAR and CIRCLE mode), and from and to a stop for these moves. In PVT and SPLINE1 mode moves, which are generally continually accelerating and decelerating, it specifies the actual move segment time.
PMAC 2 Software Reference TINIT Function Type Syntax Remarks Initialize selected transformation matrix Motion program (PROG and ROT) TINIT Example TSEL 4 TINIT IROT 71 See Also Axis Matrix Transformations (Writing a Motion Program) On-line command DEFINE TBUF Program commands TSEL, ADIS, IDIS, AROT, IROT This command initializes the currently selected (with TSEL) transformation matrix for the coordinate system by setting it to the identity matrix.
PMAC 2 Software Reference TS{data} Function Set S-Curve Acceleration Time Type Motion program (PROG and ROT) Syntax TS{data} where: • {data} is a positive constant or expression representing the S-curve time in milliseconds. Remarks This command specifies the time, at both the beginning and end of the total acceleration time, in LINEAR and CIRCLE mode blended moves that is spent in S-curve acceleration.
PMAC 2 Software Reference TSELECT{constant} Function Select active transformation matrix for X, Y, and Z axes Type Motion program (PROG and ROT) Syntax TSELECT{constant} where: • {constant} is an integer representing the number of the matrix to be used. Remarks This command selects the specified matrix for use as the active transformation matrix for the X, Y, and Z axes of the coordinate system running the motion program.
PMAC 2 Software Reference V{data} Function V-Axis Move Type Motion program (PROG and ROT) Syntax V{data where: • {data} is a floating point constant or expression representing the position or distance in user units for the V-axis. Remarks This command causes a move of the V-axis. (See {axis}{data} description, above.) Example V20 U56.
PMAC 2 Software Reference For example, if the condition only needs to be checked every 20 msec and not every Real Time Interrupt, you should consider using a DWELL command to regulate the execution time of the WHILE loop.
PMAC 2 Software Reference Example WHILE (P20=0) ... ENDWHILE WHILE (Q10<5 AND Q11>1) ...
PMAC 2 Software Reference Y{data} Function Y-Axis Move Type Motion program Syntax Y{data} where: • {data} is a floating point constant or expression representing the position or distance in user units for the Y-axis. Remarks This command causes a move of the Y-axis. (See {axis}{data} description above.) Example Y50 Y(P100) X35 Y75 Y-0.221 Z3.
PMAC 2 Software Reference PMAC MATHEMATICAL FEATURES Mathematical Operators + Function Addition Remarks The + sign implements the addition of the numerical values preceding and following it. Multiplication, division, modulo (remainder), and bit-by-bit “and” operations have higher priority than addition, subtraction, bit-by-bit “or”, and bit-by-bit “exclusive-or” operations. Operations of the same priority are implemented from left to right.
PMAC 2 Software Reference If the divisor is equal to 0, the result will saturate at +/-247 (+/-223 for an integer division in a compiled PLC). No error will be reported, and the program will not stop. It is the programmer’s responsibility to check for possible division-by-zero errors. Example Command Result P1=10*2/3 6.666666667 P1=10*(2/3) 6.
PMAC 2 Software Reference & Function Bit-by-bit "and" Remarks The & sign implements the bit-by-bit logical “and” of the numerical value preceding it and the numerical value following it. A given bit of the result is equal to 1 if the matching bits of both operands are equal to 1. The operation is done both on integer bits and fractional bits (if any).
PMAC 2 Software Reference ^ Function "Bit-by-bit “exclusive or” Remarks The ^ sign implements the bit-by-bit logical “exclusive or” (xor) of the numerical value preceding it and the numerical value following it. A given bit of the result is equal to 1 if the matching bits of the two operands are different from each other. The operation is done both on integer bits and fractional bits (if any).
PMAC 2 Software Reference ACOS Function Trigonometric arc-cosine Syntax ACOS({expression}) Domain -1.0 to +1.0 Domain units none Range 0 to Pi radians (0 to 180 degrees) Range units Radians/degrees Remarks ACOS implements the inverse cosine, or arc-cosine function of the mathematical expression contained inside the following parentheses. This function returns values in degrees if I15 is set to the default value of 0; it returns values in radians if I15 is set to 1.
PMAC 2 Software Reference Remarks ATAN implements the standard inverse tangent, or arc-tangent function of the mathematical expression contained inside the following parentheses. This standard arc-tangent function returns values only in the +/-90-degree range; if a full +/-180degree range is desired, the ATAN2 function should be used instead. This function returns values in degrees if I15 is set to the default value of 0; it returns values in radians if I15 is set to 1.
PMAC 2 Software Reference COS Function Syntax Domain Domain units Range Range units Remarks Example EXP Trigonometric cosine COS({expression}) All real numbers Radians/degrees -1.0 to +1.0 none COS implements the trigonometric cosine function of the mathematical expression contained inside the following parentheses. This function interprets its argument in degrees if I15 is set to the default value of 0; it interprets its argument in radians if I15 is set to 1.
PMAC 2 Software Reference Example P50=2.
PMAC 2 Software Reference SQRT Function Square root Syntax SQRT({expression}) Domain Non-negative real numbers Domain units User-determined Range Non-negative real numbers Range units User-determined Remarks SQRT implements the positive square-root function of the mathematical expression contained inside the following parentheses. If the argument inside the parentheses is outside of the legal domain of non-negative numbers, an arbitrary value will be returned.
PMAC 2 Software Reference PMAC Mathematical Features 369
PMAC 2 Software Reference SAVED SETUP REGISTERS NOT REPRESENTED BY I-VARIABLES PMAC and PMAC2 controllers each have several setup registers that operate like I-variables, but are not represented by I-variables. The values of these setup registers are stored in non-volatile memory with the SAVE command, and they are restored to the active registers on a power-up/reset.
PMAC 2 Software Reference A value of 8-15 in CONFIG_W1 tells PMAC2 to read ANAI00-07, respectively, as a -2.5 to +2.5V input, resulting in a signed value. A value of 0-7 in CONFIG_W2 tells PMAC2 to read channel ANAI08-15, respectively, as a 0 to+5V input, resulting in an unsigned value. A value of 8-15 in CONFIG_W1 tells PMAC2 to read ANAI08-15, respectively, as a -2.5 to +2.5V input, resulting in a signed value. Each phase update (9 kHz default), PMAC2 increments through one line of the table.
PMAC 2 Software Reference Once this setup has been made, PMAC2 will automatically cycle through the analog inputs, copying the converted digital values into RAM. These image registers can then be read as if they were the actual A/D converters. For user program use, the image registers would be accessed with M-variables.
PMAC 2 Software Reference Turbo PMAC2 Ultralite Defaults I-Var. Y:$0720 Setting $28C0A0 Y:$0721 Y:$0722 $FFFFFF $28C0A4 Y:$0723 Y:$0724 $FFFFFF $28C0A8 Y:$0725 Y:$0726 $FFFFFF $28C0AC Y:$0727 $FFFFFF Meaning I-Var. MACRO Node 0 Reg. 0 Y:$0728 Unshifted Read Use all 24 bits Y:$0729 MACRO Node 1 Reg. 0 Y:$072A Unshifted Read Use all 24 bits Y:$072B MACRO Node 4 Reg. 0 Y:$072C Unshifted Read Use all 24 bits Y:$072D MACRO Node 5 Reg.
PMAC 2 Software Reference Method Digit # of lines Process Defined Second digit 1st Additional Line 2nd Additional Line $0 1 $0 = normal conversion $1 = summed with above - - $1 1 1/T Extension of Incremental Encoder ACC-28 style A/D converter (high 16 bits, no rollover) - - $2 2 Parallel Y-word data, no filtering Bits Used Mask Word - $3 3 Parallel Y-word data, with filtering Bits Used Mask Word Max Change per Cycle $4 2 Time Base Scale Factor - $5 2 $0 = normal, signed ADC
PMAC 2 Software Reference Incremental Encoder Entries ($0, $8, $C): These three conversion table methods utilize the incremental encoder registers in the Servo ICs. Each method provides a processed result with the units of (1/32) count – the low 5 bits of the result are fractional data. 1/T Extension: With the $0 method, the fractional data is computed by dividing the Time Since Last Count register by the Time Between Last 2 Counts register.
PMAC 2 Software Reference The first table shows the entry values that should be used for ACC-28 boards interfaced to PMAC(1) Servo ICs. The “m” in the first hex digit refers to the method digit – $1 for un-integrated; $5 for integrated. The “x” in the second digit is set to $0 for an ACC-28A signed A/D converter, or $8 for an ACC-28B unsigned A/D converter.
PMAC 2 Software Reference Second Digit $0 Conversion Details $2 Word-wide source, shift result left 5 bits, no summing Word-wide source, shift result left 5 bits, summed with above result (Reserved) $3 Second Digit $8 Conversion Details $A Word-wide source, no shift of result, no summing Word-wide source, no shift of result, summed with above result (Reserved) (Reserved) $B (Reserved) $4 (Reserved) $C $5 Byte-wide Y source (low byte), shift result left 5 bits, no summing Byte-wide Y source
PMAC 2 Software Reference also be read. The selected bytes of these three registers are combined into a single 24-bit value, with the selected byte of the first register forming the least significant byte of this value. The mask word of the second setup line (see below) then operates on this combined value as if it had come from a single 24-bit word. Examples of this byte-wide conversion with the ACC-14P are shown below.
PMAC 2 Software Reference measuring the time between the two. This time is directly proportional to the distance. For this feedback the “time between last two counts” register is used like an absolute encoder.
PMAC 2 Software Reference ACC-14P Port Entries ACC 14 # 1 1 1 1 2 2 2 2 3 3 3 3 Port A B C D A B C D A B C D Entry $35FFD0 $35FFD3 $36FFD0 $36FFD3 $35FFD8 $35FFDB $36FFD8 $36FFDB $35FFE0 $35FFE3 $36FFE0 $36FFE3 ACC 14 # 4 4 4 4 5 5 5 5 6 6 6 6 Port A B C D A B C D A B C D Entry $35FFE8 $35FFEB $36FFE8 $36FFEB $35FFF0 $35FFF3 $36FFF0 $36FFF3 $35FFF8 $35FFFB $36FFF8 $36FFFB Time-Base Entries ($4, $9, $A, $B): A time-base entry performs a scaled digital differentiation of the value in the source registe
PMAC 2 Software Reference ; Setup on-line commands WY:$0723,$00C018 ; 1/T conversion of Encoder 4 WY:$0729,$400723 ; Unriggered time base from 1/T encoder WY:$072A,512 ; TBSF=131072/256 I193=$072A ; C.S.1 use result for time base Triggered Time Base ($9, $A, $B): A “triggered” time-base entry is like a regular untriggered time-base entry, except that it is easy to freeze the time base, then start it exactly on receipt of a trigger that captures the “starting” master position or time.
PMAC 2 Software Reference In the armed state, the ECT checks every servo cycle for the channel’s trigger bit to be set. When the ECT sees the trigger (the capture trigger for the machine interface channel as defined by Encoder Ivariable 2 and 3 for the channel used (e.g. I917 and I918 for a PMAC(1) channel 4 or I942 and I943 for a PMAC2 channel 4), it automatically sets the method digit to $A for “running” time base.
PMAC 2 Software Reference The more complex tracking filter, which is a five-line entry in the table, is suitable for smoothing either master data or feedback data, because its integrator eliminates steady-state errors. Still, its filtering can introduce delays in responding to dynamic changes (e.g. accelerations), so it needs to be set up carefully. This software tracking filter is dynamically equivalent to the hardware tracking filters common in resolver-to-digital converter ICs.
PMAC 2 Software Reference (making the second hex digit $0) the conversion creates a “clockwise” rotation sense. If bit 19 of the line is set to 1 (making the second hex digit $8), the conversion creates a “counter-clockwise” rotation sense. The two base ADC addresses presently supported by the Geo PMAC for resolver conversion are Y:$FF00 for Channel 1 and Y:$FF20 for Channel 2.
PMAC 2 Software Reference This resolver conversion is a direct, and not a tracking, conversion. As such, it is more dynamically responsive, but also more susceptible to measurement noise. If a more noise-immune result is desired, at the cost of some dynamic responsiveness (but still no steady-state tracking errors), a digital tracking filter can be implemented on this result with another conversion table entry (format $D8). The result of that filter entry can then be used as the feedback or master data.
PMAC 2 Software Reference conversion representing 1/4096 of a line of the encoder. Since PMAC software considers Bit 5 to be a “count” for scaling purposes when used for servo feedback or master data, Bit 0 will be considered 1/32 of a count. This means that PMAC software will scale the data as 128 “software counts” per line of the encoder.
PMAC 2 Software Reference Result Word: The output value of the high-resolution sinusoidal-encoder conversion in the Geo PMAC is placed in the 24-bit X-register of the third line of the conversion table entry. Bit 0 of the result contains the LSB of the conversion, representing 1/4096 of a line of the encoder. Since PMAC software considers the contents of Bit 5 to be a “count” for scaling purposes when used for servo feedback or master data, bit 0 will be considered 1/32 of a count.
PMAC 2 Software Reference result would have a possible normalized value of 0.0 to +2.0. When read as an unsigned integer, this register has a range of 0 to 16,777,215 ($FFFFFFF), corresponding to a normalized range of 0.0 to 2.0. When the encoder and interpolator circuitry, or the resolver and excitation circuitry, are working properly, the sum of squares should have a normalized value of +0.25 to +0.9999 (2,097,152 to 8,388,607, or $200000 to $7FFFFF).
PMAC 2 Software Reference VME/DPRAM Addressing Setup Registers: X:$0783 – X:$078C There are ten saved setup registers that configure the VME bus interface, including DPRAM. In ISA-bus PMACs, two of these registers configure the optional DPRAM interface. X:$0783 VME Address Modifier Range: Units: Default: $00 - $FF None $39 X:$0783 controls which address modifier value PMAC will respond to when sent by the VME bus host.
PMAC 2 Software Reference X:$0786 VME Mailbox Base Address Bits A23-A16 ISA DPRAM Base Address Bits A23-A16 Range: Units: Default: $00 - $FF None $7F (VME); $0D (ISA) On VME bus systems, X:$0786 controls bits A23 through A16 of the VME bus base address of the mailbox registers for PMAC. Bit 7 of X:$0786 corresponds to A23 of the base address, and bit 0 of X:$0786 corresponds to A16. X:$0786 is only used on VME systems if 24-bit or 32-bit addressing has been selected with X:$0783 and X:$078C.
PMAC 2 Software Reference on/reset is X:$E00A bits 0 – 7. It is permissible to write to this register directly (suggested M-variable M94) to change the active setup without a SAVE and reset. X:$0788 VME Interrupt Level Range: Units: Default: $01 - $07 None $02 X:$0788 controls which interrupt level (1 to 7) PMAC will assert on the VME bus. Multiple boards on the same VME bus may assert the same interrupt level if each one has a unique set of interrupt vectors as set by X:$0789.
PMAC 2 Software Reference DPRAM option. With the extended DPRAM option, the host computer must write to the page select register every time a new page is accessed. X:$078A is actually used at power-on/reset only, so to set or change bits 8 to 15 of the VME bus DPRAM base address, change the value of X:$078A, store this new value to non-volatile flash memory with the SAVE command, and reset the card with the $$$ command.
PMAC 2 Software Reference PMAC2 Servo IC Setup Bits and Registers A few setup bits and registers in PMAC2 Servo ICs are not assigned I-variables, but still can be set and saved like I-variables. X:$C005 etc. Bit 17 Range: Units: Default: Encoder n Third-Channel Demux Control {PMAC2 only} 0 .. 1 none 0 Note In V1.17 and newer firmware, this bit has been incorporated into I9n5.
PMAC 2 Software Reference Bit 18 of a hardware channel’s control word permits the enabling of a special hardware 1/T sub-count estimation for the channel in the PMAC2 DSPGATE1 Servo ASIC. (This requires revision “D” or newer of the DSPGATE1 IC, which started shipping in 2002.) If bit 18 is set to 1, the ASIC will automatically compute 12 bits of timer-based estimated sub-count data every SCLK encoder sample clock cycle (default 9.83 MHz).
PMAC 2 Software Reference The default value of $FFFFFE is suitable for use with Delta Tau Quad Amps, most third-party directPWM amplifiers, and with ACC-28B A/D converters. A value of $3FFFFF is usually appropriate for Delta Tau GEO power-block amplifiers. Refer to the specific amplifier manual for details. A valve of $1FFFFF should be used for the Option 12 serial ADCs on PMAC2a-PC/104.
PMAC 2 Software Reference PMAC I/O AND MEMORY MAP This guide to PMAC’s memory and input and output registers is provided for user reference. The PMAC architecture is very open, allowing the user to examine and use many internal registers for his own use. Usually this is done through the use of M-variables, which point to locations in the memory-I/O space of the PMAC processor. Once defined to point to the proper location, an M-variable can be treated as any other variable for reading and writing.
PMAC 2 Software Reference PMAC Memory Mapping X-Memory 23 16 15 8 7 0 23 Y-Memory 16 15 87 0 $0000 Internal DSP $00FF $0100 Memory Fixed-Use Calculation Registers $17FF $1800 External User Buffer Storage Space $BBFF $BC00 $BFFF $C000 User-Written Servo Storage Static RAM (Battery Backed) M-Variable Definitions DSP-Gate Registers $C03F $D000 Dual-Ported RAM $DFFF $E000 VME Setup Registers Mailbox Registers VME bus registers $F000 I/O Registers $FFFF Global Servo Calculation Register
PMAC 2 Software Reference Y:$0001 X:$0002 (2) Y:$0002 X:$0003 (3) Real time interrupt period minus one (I8) Data gathering counter (time) Data gathering period (I19) Global servo status bits (First word returned on ??? command.
PMAC 2 Software Reference Motor Calculation Registers: PMAC(1), PID Servo Algorithm This section provides addresses for motor calculation registers for PMAC(1) boards with the standard PID servo algorithm (without the Option 6 Extended Servo Algorithm). The addresses given are for Motor #1. For the registers for another motor x, add (x-1)*$3C – (x-1)*60 – to the appropriate motor #1 address.
PMAC 2 Software Reference Deadband size (Ix65) (1/16 count) Position error limit (Ix67) (1/16 count) “Deadband gain” (Ix64) Integral gain (Ix33) Integrated error residual Integrated error limit (Ix63) Integrated error Proportional gain (Ix30) Filter output (DAC) limit (Ix69) (Filter intermediate values) Filter result (stored for next cycle) Notch filter D2 gain (Ix39) Notch filter N2 gain (Ix37) Notch filter D1 gain (Ix38) Notch filter N1 gain (Ix36) Motor servo status bits X:$0034 (52) Y:$0034 X:$0035 (53
PMAC 2 Software Reference X:$0042 (66) Y:$0042 X:$0043 (67) Y:$0043 X:$0044 (68) Y:$0044 X:$0045 (69) Y:$0045 D:$0046 (70) D:$0047 (71) X:$0048 (72) $0049-$005B $005C-$0097 $0098-$00D3 $00D4-$010F $0110-$014B $014C-$0187 $0188-$01C3 $01C4-$01FF Phase advance Phase advance gain (Ix76) Slip Gain (Ix78) Phased DAC amplitude Command output address (Ix02) Velocity Phase Advance Gain (Ix76) Filter command value Command (torque) internal offset Compensation correction (1/[Ix08*32] cts Following error (1/[Ix08*32
PMAC 2 Software Reference D:$002B (43) X:$002C (44) Y:$002C D:$002D (45) X:$002E (46) Y:$002E (46) X:$002F (47) Y:$002F (47) Motor # Hex Decimal 1 [$0030] 48 2 [$006C] 108 X:$002E (46) D:$0030 (48) D:$0031 (48) X:$0032 (50) Y:$0032 X:$0033 (51) Y:$0033 X:$0034 (52) Y:$0034 X:$0035 (53) Y:$0035 X:$0036 (54) Y:$0036 X:$0037 (55) Y:$0037 X:$0038 (56) Y:$0038 X:$0039 (57) Y:$0039 X:$003A (58) Y:$003A X:$003B (59) Y:$003B X:$003C (60) Y:$003C X:$003D (61) Y:$003D D:$003E (62) X:$003F (63) Y:$003F Motor # Hex
PMAC 2 Software Reference ESA UG1 term ESA G1 gain (Ix57) ESA UG2 term ESA G2 gain (Ix58) ESA UD1 term ESA D1 gain (Ix54) ESA UD2 term ESA D2 gain (Ix55) ESA GS gain (Ix58) ESA H0 gain (Ix34) Previous net desired position ESA H1 gain (Ix35) ESA K0 gain (Ix49) ESA UK1 term ESA K1 gain (Ix50) ESA UK2 term ESA K2 gain (Ix51) ESA UK3 term ESA K3 gain (Ix52) ESA UL1 term ESA L1 gain (Ix46) ESA UL2 term ESA L2 gain (Ix47) ESA UL3 term ESA L3 gain (Ix48) ESA KS gain (Ix53) (Filter intermediate value) Previous filt
PMAC 2 Software Reference Motor # Hex Decimal 1 [$0050] 80 2 [$008C] 140 3 [$00C8] 200 4 [$0104] 260 5 [$0140] 320 6 [$017C] 380 7 [$01B8] 440 8 [$01F4] 500 X:$0050 (80) 0-7 8-23 Phase offset (Ix72) 2nd phase bias (Ix79) Y:$0050 0-7 8-23 X:$0051 (81) Y:$0051 X:$0052 (82) Y:$0052 D:$0053 (83) X:$0054 (84) Y:$0054 X:$0055 (85) Y:$0055 X:$0056 (86) Y:$0056 X:$0057 (87) Y:$0057 X:$0058 (88) $0059-$005B $005C-$0097 $0098-$00D3 $00D4-$010F $0110-$014B $014C-$0187 $0188-$01C3 $01C4-$01FF # of commuta
PMAC 2 Software Reference D:$0023 (35) D:$0024 (36) D:$0025 (37) D:$0026 (38) D:$0027 (39) D:$0028 (40) X:$0029 (41) Y:$0029 X:$002A (42) Y:$002A D:$002B (43) X:$002C (44) Y:$002C D:$002D (45) X:$002E (46) Y:$002E D:$002F Motor # Hex Decimal 1 [$0030] 48 2 [$006C] 108 X:$0030 (48) Y:$0030 X:$0031 (49) Y:$0031 X:$0032 (50) Y:$0032 X:$0033 (51) Y:$0033 X:$0034 (52) Y:$0034 X:$0035 (53) Y:$0035 X:$0036 (54) Y:$0036 D:$0037 (55) X:$0038 (56) Y:$0038 D:$0039 X:$003A (58) X:$003B (59) Y:$003B X:$003C (60) Y:$
PMAC 2 Software Reference (First word returned on ? command. See Y:$0814 for second word.
PMAC 2 Software Reference D:$004A (74) D:$004B (75) $004C-$005B $005C-$0097 $0098-$00D3 $00D4-$010F $0110-$014B $014C-$0187 $0188-$01C3 $01C4-$01FF Compensation correction (1/[Ix08*32] cts) Following error (1/[Ix08*32] cts) (Reserved for future use) Motor #2 registers (as above) Motor #3 registers (as above) Motor #4 registers (as above) Motor #5 registers (as above) Motor #6 registers (as above) Motor #7 registers (as above) Motor #8 registers (as above) (92-151) (152-211) (212-271) (272-331) (332-391)
PMAC 2 Software Reference Motor # Hex Decimal 1 [$0030] 48 2 [$006C] 108 D:$0030 (48) D:$0031 (48) X:$0032 (50) Y:$0032 X:$0033 (51) Y:$0033 X:$0034 (52) Y:$0034 X:$0035 (53) Y:$0035 X:$0036 (54) Y:$0036 X:$0037 (55) Y:$0037 X:$0038 (56) Y:$0038 X:$0039 (57) Y:$0039 X:$003A (58) Y:$003A X:$003B (59) Y:$003B X:$003C (60) Y:$003C X:$003D (61) Y:$003D D:$003E (62) X:$003F (63) Y:$003F Motor # Hex Decimal 1 [$0040] 64 408 4 [$00E4] 228 5 [$0120] 288 6 [$015C] 348 7 [$0198] 408 8 [$01D4] 468 Compensa
PMAC 2 Software Reference Y:$0046 X:$0047 (71) Y:$0047 X:$0048 (72) Y:$0048 X:$0049 (73) Y:$0049 X:$004A (74) Y:$004A X:$004B (75) Y:$004B X:$004C (76) Y:$004C X:$004D (77) Y:$004D X:$004E (78) Y:$004E X:$004F (79) ESA K0 gain (Ix49) ESA UK1 term ESA K1 gain (Ix50) ESA UK2 term ESA K2 gain (Ix51) ESA UK3 term ESA K3 gain (Ix52) ESA UL1 term ESA L1 gain (Ix46) ESA UL2 term ESA L2 gain (Ix47) ESA UL3 term ESA L3 gain (Ix48) ESA KS gain (Ix53) (Filter intermediate value) Previous filter (DAC) output Filter o
PMAC 2 Software Reference Y:$0054 X:$0055 (85) Y:$0055 X:$0056 (86) Y:$0056 X:$0057 (87) Y:$0057 X:$0058 (88) Y:$0058 X:$0059 (89) Y:$0059 X:$005A (90) Y:$005A X:$005B (91) Y:$005B $005C-$0097 $0098-$00D3 $00D4-$010F $0110-$014B $014C-$0187 $0188-$01C3 $01C4-$01FF Slip gain (Ix78) Commanded quadrature current (servo command) Commanded direct current (Ix77) Actual quadrature current Actual direct current Current-loop back path proportional gain (Ix76) Current-loop forward path proportional gain (Ix62) Quad
PMAC 2 Software Reference The format of the conversion table is: Y:word Bits Conversion Format: 16-23 $00 = 1/T interpolation of incremental encoder $10 = A/D register conversion $20 = Unfiltered parallel Y word source* $30 = Filtered parallel Y word source** $40 = Time base* $50 = Integrated A/D register conversion $60 = Unfiltered parallel X word source* $70 = Filtered parallel X word source** $80 = Parallel interp.
PMAC 2 Software Reference General Global Registers $0770 - $077F Y:$0780 X:$0780 X:$0781 X:$0782 X:$0783 - Y:$07D1 (1920) (1921) (1922) - X:$078C X:$0786 - X:$0787 X:$078D (1933) X:$078E (1934) X:$078F (1935) Open memory; cleared to 0 on power-on/reset (useful for 24-bit M-variables) LCD Display character memory Dwell (fixed) feedpot (I10) Jog-to-position move delay time (I12) Programmed move delay time (I11) VME address and vector values (See VME Interface Document for details) PC Dual-ported RAM host
PMAC 2 Software Reference Y:$0805 X:$0806 X:$0807 Y:$0807 X:$0808 Y:$0808 X:$0809 Y:$0809 D:$080A D:$080B Mot/CS Hex Decimal (2054) (2055) (2056) (2057) (2058) (2059) 1 [$0810] 2064 X:$0810 Y:$0810 L:$0811 L:$0812 D:$0813 X:$0814 Y:$0814 2 [$08D0] 2256 Motor #1 soft following error (Ix12) C.S. 1 present timebase (units of I10 {1/8,388,608 msec}) C.S. 1 desired timebase pointer (Ix93) C.S. 1 present timebase pointer C.S. 1 host command timebase [100% when = I10] C.S. 1 present timebase slew rate C.S.
PMAC 2 Software Reference 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Cutter compensation on Cutter compensation left PVT/SPLINE move mode Segmented move stop request Segmented move acceleration in progress Segmented move in progress Pre Jog move flag Cutter compensation move buffered Cutter compensation move stop request Cutter compensation outside corner Dwell move buffered Synchronous M-variable one-shot End-of-block (/) stop in progress Delayed calculation flag Rotary buffer full In-posit
PMAC 2 Software Reference Bits 0-2 Motor 1 assignment 3-5 Motor 2 assignment 6-8 Motor 3 assignment 9-11 Motor 4 assignment 12-14 Motor 5 assignment 15-17 Motor 6 assignment 18-20 Motor 7 assignment 21-23 Motor 8 assignment Where the motor’s assignment is determined by the value of its bit group (3 bits can have a value from 0 to 7).
PMAC 2 Software Reference L:$083E (2110) L:$083F (2111) Mot/CS Hex Decimal 1 [$0840] 2112 D:$0840 L:$0841 D:$0842 D:$0843 D:$0844 X:$0845 Y:$0845 D:$0846 X:$0847 Y:$0847 Mot/CS Hex Decimal 2 [$0900] 2304 (2112) (2113) (2114) (2115) (2116) (2117) (2117) (2118) (2119) (2119) 1 [$08B0] 2224 $0980 - $0A3F $0A40 - $0AFF $0B00 - $0BBF $0BC0 - $0C7F $0C80 - $0D3F $0D40 - $0DFF 3 [$09C0] 2496 4 [$0A80] 2688 5 [$0B40] 2880 6 [$0C00] 3072 7 [$0CC0] 3264 8 [$0D80] 3456 Motor #1 following error (1/[Ix08*3
PMAC 2 Software Reference Buffer Management Registers X:$0E00 (3584) Y:$0E00 X:$0E01 Y:$0E01 X:$0F00 Y:$0F00 X:$0F01 Y:$0F01 - X:$0EFF - Y:$0EFF (3840) - X:$0F1F - Y:$0F1F 1st motion program number (low 16 bits) and entry status (high 8 bits) 1st motion program buffer storage address 2nd to 256th program # and entry status 2nd to 256th program buffer storage address PLC 0 execution address PLC 0 buffer storage address PLC 1 - 31 execution address PLC 1 - 31 storage pointer (3585 - 3839) (3841-3871) Bi
PMAC 2 Software Reference PMAC(1) DSPGATE Servo IC Registers The registers in PMAC(1)’s “DSPGATE” Gate-Array ICs are mapped into the memory space of PMAC’s processor. Each DSPGATE contains four consecutively numbered channels; there may be up to 4 DSPGATEs in a PMAC system, for up to 16 channels. Every PMAC contains the first DSPGATE, which has channels 1 through 4. If Option 1 is ordered (not available on PMAC-Lite or Mini-PMAC), the second DSPGATE is provided, which has channels 5 through 8.
PMAC 2 Software Reference DAC # Hex Decimal 2 [$C002] 49154 4 [$C00A] 49162 Y:$Cxxx ADC # Hex Decimal 1 [$C006] 49158 1 [$C002] 49154 9 [$C022] 49186 DAC # Hex Decimal 1 [$C003] 49155 Enc # Hex Decimal Enc # Hex Decimal 10 [$C022] 49186 12 [$C02A] 49194 14 [$C032] 49202 16 [$C03A] 49210 7 [$C01E] 49182 9 [$C026] 49190 11 [$C02E] 49198 13 [$C036] 49206 15 [$C03E] 49214 6 [$C016] 49174 14 [$C036] 49206 7 [$C01A] 49178 15 [$C03A] 49210 8 [$C01E] 49182 16 [$C03E] 49214 11 [$C02B] 49195 13
PMAC 2 Software Reference PMAC2 DSPGATE1 Servo IC Registers Chan # Hex Decimal Chan # Hex Decimal 1 [$C000] 49152 9 [$C040] 49216 2 [$C008] 49160 10 [$C048] 49224 3 [$C010] 49168 11 [$C050] 49232 4 [$C018] 49176 12 [$C058] 49240 5 [$C020] 49184 13 [$C060] 49248 6 [$C028] 49192 14 [$C068] 49256 7 [$C030] 49200 15 [$C070] 49264 8 [$C038] 49208 16 [$C078] 49272 Note: • • • • Channels 1-4, residing in the first DSPGATE1 IC, are present on all PMAC2 boards.
PMAC 2 Software Reference 18 19 20 21 22 23 Chan # Hex Decimal Chan # Hex Decimal 1 [$C001] 49153 9 [$C041] 49217 2 [$C009] 49161 10 [$C049] 49225 Negative End Limit (MLIMn) Input Value User Flag (USERn) Input Value FlagWn Input Value FlagVn Input Value FlagUn Input Value FlagTn Input Value 3 [$C011] 49169 11 [$C051] 49233 Y:$Cxxx 4 [$C019] 49177 12 [$C059] 49241 5 [$C021] 49185 13 [$C061] 49249 6 [$C029] 49193 14 [$C069] 49257 7 [$C031] 49201 15 [$C071] 49265 8 [$C039] 49209 16 [$C079] 49273 Ch
PMAC 2 Software Reference Y:$Cxxx Channel n Output B Command Value Bits 8-23 6-23 0-5 X:$Cxxx Chan # Hex Decimal Chan # Hex Decimal 1 [$C004] 49156 9 [$C044] 49220 2 [$C00C] 49164 10 [$C04C] 49228 PWM Command Value Serial DAC Command Value Not used Channel n Flag Position Capture Value; 24 bits, units of counts 3 [$C014] 49172 11 [$C054] 49236 Y:$Cxxx 4 [$C01C] 49180 12 [$C05C] 49244 5 [$C024] 49188 13 [$C064] 49252 6 [$C02C] 49196 14 [$C06C] 49260 7 [$C034] 49204 15 [$C074] 49268 8 [$C03C] 49
PMAC 2 Software Reference Channel 3: X:$C014; Channel 7: X:$C034; Channel 11: X:$C054; Channel 15: X:$C074: ADC Strobe Word, 24 bits (Shifted out MSB first one bit per ADC_CLK cycle, starting on rising edge of phase clock.) Standard mode, bit 0 must be 0 to clear strobe for next cycle; first data bit clocked in ends up in bit 23. Alternate mode (Rev “D” and newer only), bit 0 set to 1 (strobe cleared automatically); first four data bits clocked in “rolled over” to bits 3-0.
PMAC 2 Software Reference 4-5 6 7 8-9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 Chan # [$C006] Hex 49158 Decimal 9 Chan # [$C046] Hex 49222 Decimal 2 [$C00E] 49166 10 [$C04E] 49230 (Bits 4-7: I9n2) Position Capture Control 00: Immediate capture 01: Use encoder index alone 10: Use capture flag alone 11: Use encoder index and capture flag Index Capture Invert Control (0=no inversion, 1=inversion) Flag Capture Invert Control (0=no inversion, 1=inversion) Capture Flag Select Control (I9n3) 00: Home Flag
PMAC 2 Software Reference only) Channel n Encoder Compare Auto-increment value (24 bits, units of counts) X:$Cxxx Chan # Hex Decimal Chan # Hex Decimal 1 [$C007] 49159 9 [$C047] 49223 2 [$C00F] 49167 10 [$C04F] 49231 3 [$C017] 49175 11 [$C057] 49239 Y:$Cxxx 4 [$C01F] 49183 12 [$C05F] 49247 5 [$C027] 49191 13 [$C067] 49255 6 [$C02F] 49199 14 [$C06F] 49263 7 [$C037] 49207 15 [$C077] 49271 8 [$C03F] 49215 16 [$C07F] 49279 Channel n Encoder Compare A Value (24 bits, units of counts) Channel n Encoder
PMAC 2 Software Reference 15 16-23 Y:$C083 0 7 8 11 12-23 X:$C083 0 7 8 11 12-23 Y:$C084 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 426 SEL7 Direction Control (Must be 1 to use standard port accessories) (All bits: 0=Input; 1=Output) Not used JDISP, J??? Port Data Register DISP0 Data Value DISP7 Data Value CTRL0 Data Value CTRL3 Data Value Not used JDISP, J??? Port Data Direction Control Register DISP0 Direction Control (Must be 1 for display to function) DISP7 Direction Control (Mus
PMAC 2 Software Reference X:$C084 0 23 Y:$C085 0 7 8-23 X:$C085 0 7 8-23 Y:$C086 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16-23 X:$C086 0 7 8 15 16-23 Y:$C087 0 7 8 11 12-23 X:$C087 PMAC I/0 and Memory Map JI/O Port Data Inversion Control Register (when used as general I/O; see Y:$C084) I/O00 Inversion Control I/O23 Inversion Control (All bits: 0=Non-inverting; 1=Inverting) JI/O Port Data Type Control Register I/O24 Data Type Control I/O31 Data Type Control (These bits are always 1; there is no altern
PMAC 2 Software Reference 0 7 8 11 Y:$C088-$C08B X:$C088-$C08B Y:$C08C X:$C08C Y:$C08D 0-3 4 5-23 X:$C08D Y:$C08E 0 15 16-19 20-23 X:$C08E Y:$C08F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 DISP0 Inversion Control DISP7 Inversion Control CTRL0 Inversion Control CTRL3 Inversion Control (All bits: 0=Non-inverting; 1=Inverting) (All bits must be 0 to use standard port accessories) Not used Not used Pure binary conversion from gray code input on I/O00 to I/O23 Not used Gray-to-binary conversion bit-length contro
PMAC 2 Software Reference X:$C08F 0-2 3-5 6-8 9-11 12 13 14-15 16-19 20-23 DSPGATE2 clock control register (Bits 0-11 comprise I993) Handwheel SCLK* Frequency Control n (f=39.3216MHz / 2n, n=0-7) JHW/PD PFM Clock Frequency Control n (f=39.3216MHz / 2n, n=0-7) Not used ADC Clock* Frequency Control n (f=39.3216MHz / 2n, n=0-7) Phase Clock Direction (0=output, 1=input. This must be 1) Servo Clock Direction (0=output, 1=input.
PMAC 2 Software Reference Chan # Hex Decimal Y:$C09x 1* [$C091] 49297 2* [$C099] 49305 Handwheel n Time Since Last Encoder Count (SCLK cycles) Handwheel n Phase Position Capture Register (counts) X:$C09x Chan # Hex Decimal Y:$C09x 1* [$C092] 49298 2* [$C09A] 49306 Supplementary Channel n* Output A Command Value Bits 8-23 0-5 X:$C09x 0 1-23 PWM Command Value (appears on I/O10 & I/O11 if in dedicated mode) Not Used Handwheel n* Servo Position Capture Register Direction of last count (0=up, 1=down)
PMAC 2 Software Reference Chan # Hex Decimal Y:$C09x 1* [$C095] 49301 2* [$C09D] 49309 Supplementary Channel n* ADC A Input Value (uses SEL2 in dedicated mode) Bits 6-23 0-5 X:$C09x 0-1 2-3 4-5 6 7 8-9 10 11 12 13 14 15 16 17-18 19 20 21 PMAC I/0 and Memory Map Serial ADC Value Not used Supplementary Channel n* (Handwheel n) Control Word Encoder Decode Control 00: Pulse and direction decode 01: x1 quadrature decode 10: x2 quadrature decode 11: x4 quadrature decode Direction & Timer Control 00: S
PMAC 2 Software Reference 22 23 Not used (reports as 0) Output C Mode Select (0=PWM, 1=PFM) Chan # Hex Decimal Y:$C09x 1* [$C096] 49302 2* [$C09E] 49310 Supplementary Channel n* ADC B Input Value (uses SEL3 in dedicated mode) Bits 6-23 0-5 X:$C09x Serial ADC Value Not used Handwheel n Compare Auto-increment value (24 bits, units of counts) Chan # Hex Decimal Y:$C09x X:$C09x Y:$C0A0 X:$C0A0 Y:$C0A1 X:$C0A1 Y:$C0A2 X:$C0A2 Y:$C0A3 X:$C0A3 Y:$C0A4 X:$C0A4 Y:$C0A5 X:$C0A5 Y:$C0A6 X:$C0A6 Y:$C0A7 432 1
PMAC 2 Software Reference X:$C0A7 Y:$C0A8 X:$C0A8 Y:$C0A9 X:$C0A9 Y:$C0AA X:$C0AA Y:$C0AB X:$C0AB Y:$C0AC X:$C0AC Y:$C0AD X:$C0AD Y:$C0AE X:$C0AE Y:$C0AF X:$C0AF Y:$C0B0 X:$C0B0 Y:$C0B1 X:$C0B1 Y:$C0B2 X:$C0B2 Y:$C0B3 X:$C0B3 Y:$C0B4 X:$C0B4 Y:$C0B5 PMAC I/0 and Memory Map feedback (read) register (bits 8-23; bits 0-7 not used) MACRO Node 3 3rd 16-bit command (write) and feedback (read) register (bits 8-23; bits 0-7 not used) MACRO Node 4 24-bit command (write) and feedback (read) register MACRO Node 4 24
PMAC 2 Software Reference X:$C0B5 Y:$C0B6 X:$C0B6 Y:$C0B7 X:$C0B7 Y:$C0B8 X:$C0B8 Y:$C0B9 X:$C0B9 Y:$C0BA X:$C0BA Y:$C0BB X:$C0BB Y:$C0BC X:$C0BC Y:$C0BD X:$C0BD Y:$C0BE X:$C0BE Y:$C0BF X:$C0BF 434 feedback (read) register (bits 8-23; bits 0-7 not used) MACRO Node 11 1st 16-bit command (write) and feedback (read) register (bits 8-23; bits 0-7 not used) MACRO Node 9 1st 16-bit command (write) and feedback (read) register (bits 8-23; bits 0-7 not used) MACRO Node 11 2nd 16-bit command (write) and feedback
PMAC 2 Software Reference Dual-Ported RAM (Option 2 Required) Note: Dual-ported RAM addresses are given both as absolute addresses on the PMAC side (with a $ prefix) and as offsets from the base address on the host-computer side (with a “0x” prefix). Detailed information on these functions is given in the manual for the Option 2 DPRAM.
PMAC 2 Software Reference Bit Format of Request Words Bit Request (1 = Action Requested; 0 = No Action Requested) 0-7 (Reserved for Delta Tau Future Use) 8 Jog-Minus (Motor Only) * 9 Jog-Plus (Motor Only) * 10 Pre-Jog (Motor Only) 11 Start (RUN) (Coord. Sys. Only) 12 Step (STEP/QUIT) (Coord. Sys. Only) 13 Stop (ABORT) (Coord. Sys. Only) 14 Home (Motor Only) 15 Feed Hold (HOLD) (Coord. Sys. Only) * When both Jog-Minus and Jog-Plus are set, motor will stop Control Panel Feedrate Override Coord. Sys.
PMAC 2 Software Reference Motor # Host Address PMAC Addr.
PMAC 2 Software Reference Motor # Host Address PMAC Addr.
PMAC 2 Software Reference Motor/C.S. # Host Address PMAC Addr. 1 0x02600x0266 $D098$D099 $0818 2 0x02DC0x02E2 $D0B7$D0B8 $08D8 3 0x03580x035E $D0D6$D0D7 $0998 4 0x03D40x03DA $D0F5$D0F6 $0A58 5 0x04500x0456 $D114$D115 $0B18 6 0x04CC0x04D2 $D133$D134 $0BD8 7 0x05480x054E $D152$D153 $0C98 8 0x05C40x05CA $D171$D172 $0D58 Source Addr Coordinate System Status/Definition Word (low 32 bits contains Motor Definition Word; high 32 bits contain 1st word returned on ?? command) Motor/C.S.
PMAC 2 Software Reference Motor/C.S. # Host Address PMAC Addr.
PMAC 2 Software Reference Note 1: The following is the logic used in the PMAC to determine which variable will be put in this slot. It is controlled by bits of the coordinate system program execution status word (PSTATUS): If (PSTATUS.7 == 1 && PSTATUS.5 == 0) Use Source A Else ......If (PSTATUS.9 == 1) ...... Use Source B ......Else ...... Use Source C ......Endif Endif PSTATUS.7 is the Segmented move flag ( I13 != 0 ). PSTATUS.5 is the Segmented move stop flag. PSTATUS.9 is the Tool Compensation flag.
PMAC 2 Software Reference Motor/C.S. # Host Address 1 0x02C00x02C2 $D0B0 2 0x033C0x033E $D0CF 3 0x03B80x03BA $D0EE 4 0x04340x0436 $D10D 5 0x04B00x04B2 $D12C 6 0x052C0x052E $D14B 7 0x05A80x05AA $D16A 8 0x06240x0626 $D189 1 0x02C40x02C6 $D0B1 Y:$082A 2 0x0340 0x0342 $D0D0 Y:$08EA 3 0x03BC0x03BE $D0EF Y$09AA 4 0x04380x043A $D10E Y$0A6A 5 0x04B40x04B6 $D12D Y$0B2A 6 0x05300x0532 $D14C Y$0BEA 7 0x05AC0x05AE $D16B Y$0CAA 8 0x06280x062A $D18A Y$0D6 PMAC Addr.
PMAC 2 Software Reference Variable Address Buffer Format for each Data Structure (6x16-bit) DPRAM Address X:Mem Y:Mem $D240 Bits 13 - 15: Special type PMAC address to $DFFD Bits 8 - 12: Offset PMAC address Bits 3 - 7: Width PMAC address Bits 0 - 2: Variable type to write PLCC Function Block Number Upper 16-bits of data 1 Upper 16-bits of data 2 Lower 16-bits of data 1 Lower 16-bits of data 2 X:Mem Bit Definitions 0 = PLCC Function Block 1-7 = Reserved for future use Offset = 0..23.
PMAC 2 Software Reference 1 0x07E2 X:$D1F7 Buffer. # Host Address PMAC Addr. 2 0x07F6 X:$D1FD 3 0x0802 X:$D200 4 0x080E X:$D203 5 0x081A X:$D206 6 0x0826 X:$D209 7 0x0832 X:$D20C 8 0x083E X:$D20F PMAC Binary Rotary Buffer Index (In PMAC addresses from start of buffer; each increment is 32-bit word, 4 addresses on host side.) PMAC updates after reading program lines 1 0x07E4 Y:$D1F8 Buffer. # Host Address PMAC Addr.
PMAC 2 Software Reference VME-Bus Registers (PMAC(1)-VME, PMAC2-VME, PMAC2-VME Ultralite only) $E000 - $EFFF Y:$E000 Y:$E001 Y:$E002 Y:$E003 Y:$E004 Y:$E005 Y:$E006 Y:$E007 Y:$E008 Y:$E009 Y:$E00A Y:$E00B Y:$E00C Y:$E00D Y:$E00E Y:$E00F Used for VME-bus functions (57344 - 61439) VME Mailbox Register 0 (Bits 0-7) VME Mailbox Register 1 (Bits 0-7) VME Mailbox Register 2 (Bits 0-7) VME Mailbox Register 3 (Bits 0-7) VME Mailbox Register 4 (Bits 0-7) VME Mailbox Register 5 (Bits 0-7) VME Mailbox Register 6 (Bi
PMAC 2 Software Reference VME Bus PMAC2 Versions (PMAC2-VME, PMAC2-VME UltraLite): X/Y:$E800 I/O Buffer IC Direction Control Bits 0 1 2 3 X/Y:$E801 0 1 2 3 X/Y:$E802 0 1 2 3 X/Y:$E803 0 1 2 3 OUT0: Buffer direction control for I/O00 to I/O07 on JIO OUT1: Buffer direction control for I/O08 to I/O15 on JIO OUT2: Buffer direction control for I/O16 to I/O23 on JIO OUT3: Buffer direction control for I/O24 to I/O31 on JIO I/O Buffer IC Direction Control OUT8: Inverted as RS output on JDISP XIN_1: Jumper E1
PMAC 2 Software Reference Y:$FFC2 (65474) PMAC I/0 and Memory Map 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Thumbwheel Port Out. Bit 0 (SEL0:J3-4) Thumbwheel Port Out. Bit 1 (SEL1:J3-6) Thumbwheel Port Out. Bit 2 (SEL2:J3-8) Thumbwheel Port Out. Bit 3 (SEL3:J3-10) Thumbwheel Port Out. Bit 4 (SEL4:J3-12) Thumbwheel Port Out. Bit 5 (SEL5:J3-14) Thumbwheel Port Out. Bit 6 (SEL6:J3-16) Thumbwheel Port Out.
PMAC 2 Software Reference Inputs and Outputs (Mini-PMAC, Mini-PMAC-PCI Only) Y:$FFC0 0 1 2 3 4 5 6 7 J1 (JDISP) Outputs DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 Y:$FFC1 0 1 2 3 4 5 6 7 THW Data 0 THW Data 1 THW Data 2 THW Data 3 THW Data 4 THW Data 5 THW Data 6 THW Data 7 SEL0 SEL1 SEL2 SEL3 SEL4 SEL5 SEL6 SEL7 THW Select 0 THW Select 1 THW Select 2 THW Select 3 THW Select 4 THW Select 5 THW Select 6 THW Select 7 MI1 MI2 MI3 MI4 MI5 MI6 MI7 MI8 Machine Input 1 Machine Input 2 Machine Input 3 Machine Input 4
PMAC 2 Software Reference 7 E47 Y:$FFC6 0 1 2 3 4 5 6 7 Jumper E47 Dedicated Use E48 E49 E50 E51 PWR_GUD- Jumper E48 Jumper E49 Jumper E50 Jumper E51 Power Supply Detect (Reserved for future use) (Reserved for future use) (Reserved for future use) Inputs and Outputs (PMAC1.
PMAC 2 Software Reference 6 7 EROR F1ER Y:$FFC5 0 1 2 3 4 5 6 7 CPU Board Display Control and Panel Indicators N.C.
PMAC 2 Software Reference 6 7 HOME/ HOLD/ HOME SEARCH* HOLD MOTION* FPD0/ FPD1/ FPD2/ FPD3/ IPLD/ BRLD/ ERLD/ F1LD/ SEL BIT 0* SEL BIT 1* SEL BIT 2* SEL BIT 3* In Position* Buffer Request* Error Indicator* WarnFollowing Err* Y:$FFCD 0 1 2 3 4 5 6 7 Axis Board 1 (E93A ON) JPAN port I/O Y:$FFCF 6 7 Y:$FFD0 PMAC I/0 and Memory Map (J5-22) (J5-20) (J5-18) (J5-16) (J5-14) (J5-12) (J5-10) (J5-8) Machine I/O 8 Machine I/O 9 Machine I/O 10 Machine I/O 11 Machine I/O 12 Machine I/O 13 Machine I/O 14 Mach
PMAC 2 Software Reference 5 6 7 MOD29/ MOD30/ MOD31/ Y:$FFD4 0 1 2 3 4 5 6 7 JOG-/ JOG+/ PREJ/ STRT/ STEP/ STOP/ HOME/ HOLD/ FPD0/ FPD1/ FPD2/ FPD3/ IPLD/ BRLD/ ERLD/ F1LD/ Y:$FFD7 Y:$FFD8 (J2-3) (J2-5) (J2-13) (J2-14) (J2-17) (J2-18) (J2-19) (J2-23) MOD00/-MOD07/ Control (Y:$FFD0) MOD08/-MOD15/ Control (Y:$FFD1) MOD16/-MOD23/ Control (Y:$FFD2) MOD24/-MOD31/ Control (Y:$FFD3) JPAN Switch Control (Y:$FFD4) JPAN Selector/Indicator Control (Y:$FFD5) Reserved Control (do not use) Reserved Control (do no
PMAC 2 Software Reference 2 3 4 5 6 7 MOD18/ MOD19/ MOD20/ MOD21/ MOD22/ MOD23/ Y:$FFDB 0 1 2 3 4 5 6 7 JOG-/ JOG+/ PREJ/ STRT/ STEP/ STOP/ HOME/ HOLD/ FPD0/ FPD1/ FPD2/ FPD3/ IPLD/ BRLD/ ERLD/ F1LD/ Y:$FFDF (General Purpose) (General Purpose) (General Purpose) (General Purpose) (General Purpose) (General Purpose) (General Purpose) (General Purpose) (J2-4) (J2-6) (J2-7) (J2-8) (J2-9) (J2-10) (J2-11) (J2-12) (General Purpose) (General Purpose) (General Purpose) (General Purpose) (General Purpose) (Ge
PMAC 2 Software Reference Y:$FFE1 0 1 2 3 4 5 6 7 Axis Board 4 (E93D ON) JOPT port I/O MOD08/ MOD09/ MOD10/ MOD11/ MOD12/ MOD13/ MOD14/ MOD15/ Y:$FFE2 0 1 2 3 4 5 6 7 JOG-/ JOG+/ PREJ/ STRT/ STEP/ STOP/ HOME/ HOLD/ Machine I/O 24 Machine I/O 25 Machine I/O 26 Machine I/O 27 Machine I/O 28 Machine I/O 29 Machine I/O 30 Machine I/O 31 (J6-1) (J6-2) (J6-3) (J6-4) (J6-5) (J6-6) (J6-7) (J6-8) (General Purpose) (General Purpose) (General Purpose) (General Purpose) (General Purpose) (General Purpose) (Gener
PMAC 2 Software Reference (Y:$FFE5) Reserved Control (do not use) Reserved Control (do not use) 6 7 Note: * All the I/O lines marked with an asterisk in the above table are used by PMAC’s firmware for special functions. These lines should not be used for general-purpose I/O. PMAC2 Option 12/12A Analog-to-Digital Converters Y:$FFC0 Option 12 Analog-to-Digital Converters (low 12 bits) Write operation: channel select (Channels 0-7) and mode; Read operation: converted value of selected channel.
PMAC 2 Software Reference Y:$FFF9 (65529) Y:$FFFA (65530) Y:$FFFB (65531) 456 6th Accessory-14 Port B 6th Accessory-14 Multimodule 6th Accessory-14 Control Word PMAC I/0 and Memory Map
PMAC 2 Software Reference PMAC I/0 and Memory Map 457
PMAC 2 Software Reference PMAC(1) SUGGESTED M-VARIABLE DEFINITIONS This file contains a suggested set of M-Variable definitions. These definitions can be very useful for getting access to important I/O and registers. It is not required that you use these particular definitions. Most example programs will use these definitions. CLOSE ; To ensure commands are on-line M0..
PMAC 2 Software Reference M44->Y:$FFC1,12,1 ; SEL4 Output M45->Y:$FFC1,13,1 ; SEL5 Output M46->Y:$FFC1,14,1 ; SEL6 Output M47->Y:$FFC1,15,1 ; SEL7 Output M48->Y:$FFC1,8,8,U ; SEL0-7 Outputs treated as a byte M50->Y:$FFC1,0,1 ; DAT0 Input M51->Y:$FFC1,1,1 ; DAT1 Input M52->Y:$FFC1,2,1 ; DAT2 Input M53->Y:$FFC1,3,1 ; DAT3 Input M54->Y:$FFC1,4,1 ; DAT4 Input M55->Y:$FFC1,5,1 ; DAT5 Input M56->Y:$FFC1,6,1 ; DAT6 Input M57->Y:$FFC1,7,1 ; DAT7 Input M58->Y:$FFC1,0,8,U ; DAT0-7 Inputs treated as a byte ; Register
PMAC 2 Software Reference M145->Y:$0814,10,1 ; Motor #1 Move Registers M161->D:$0028 M162->D:$002B M163->D:$080B M164->D:$0813 M165->L:$081F M166->X:$0033,0,24,S M167->D:$002D ; #1 Home-complete bit ; #1 Commanded position (1/[Ix08*32] cts) ; #1 Actual position (1/[Ix08*32] cts) ; #1 Target (end) position (1/[Ix08*32] cts) ; #1 Position bias (1/[Ix08*32] cts) ; &1 X-axis target position (engineering units) ; #1 Actual velocity (1/[Ix09*32] cts/cyc) ; #1 Present master ((handwheel) pos (1/[Ix07*32] cts ; o
PMAC 2 Software Reference M218->X:$C004,18,1 M219->X:$C004,19,1 M220->X:$C004,20,1 M221->X:$C004,21,1 M222->X:$C004,22,1 M223->X:$C004,23,1 ; Motor #2 Status Bits M230->Y:$08D4,11,1 M231->X:$0079,21,1 M232->X:$0079,22,1 M233->X:$0079,13,1 M235->X:$0079,15,1 M237->X:$0079,17,1 M238->X:$0079,18,1 M239->Y:$08D4,14,1 M240->Y:$08D4,0,1 M241->Y:$08D4,1,1 M242->Y:$08D4,2,1 M243->Y:$08D4,3,1 M245->Y:$08D4,10,1 ; Motor #2 Move Registers M261->D:$0064 M262->D:$0067 M263->D:$08CB M264->D:$08D3 M265->L:$0820 M266->X:$
PMAC 2 Software Reference M292->L:$08E3 ; #2 Y/V-Axis scale factor (cts/unit) M293->L:$08E4 ; #2 Z/W-Axis scale factor (cts/unit) M294->L:$08E5 ; #2 Axis offset (cts) ; Coordinate System &2 Variables M297->X:$08C6,0,24,S ; &2 Host commanded time base (I10 units) M298->X:$08C8,0,24,S ; &2 Present time base (I10 units) ; Registers associated with Encoder/DAC3 (Usually Motor #3) M301->X:$C009,0,24,S ; ENC3 24-bit counter position M302->Y:$C00B,8,16,S ; DAC3 16-bit analog output M303->X:$C00B,0,24,S ; ENC3 cap
PMAC 2 Software Reference ; of master or (1/[Ix08*32] cts of slaved motor) M368->X:$00BD,8,16,S ; #3 Filter Output (DAC bits) M369->D:$00BE ; #3 Compensation correction M370->D:$00B9 ; #3 Present phase position; includes fraction in Y-register M371->X:$00B9,0,24,S ; #3 Present phase position (counts*Ix70) M372->L:$09AB ; #3 Variable jog position/distance (counts) M373->Y:$0995,0,24,S ; #3 Encoder home capture offset (counts) M374->Y:$09AA,24,S ; #3 Averaged actual velocity (1/[Ix09*32] cts/cyc) ; Coordinat
PMAC 2 Software Reference M432->X:$00F1,22,1 M433->X:$00F1,13,1 M435->X:$00F1,15,1 M437->X:$00F1,17,1 M438->X:$00F1,18,1 M439->Y:$0A54,14,1 M440->Y:$0A54,0,1 M441->Y:$0A54,1,1 M442->Y:$0A54,2,1 M443->Y:$0A54,3,1 M445->Y:$0A54,10,1 ; Motor #4 Move Registers M461->D:$00DC M462->D:$00DF M463->D:$0A4B M464->D:$0A53 M465->L:$0819 M466->X:$00E7,0,24,S M467->D:$00E1 ; #4 Negative-end-limit-set bit ; #4 Desired-velocity-zero bit ; #4 Dwell-in-progress bit ; #4 Running-program bit ; #4 Open-loop-mode bit ; #4 Ampl
PMAC 2 Software Reference M504->X:$0724,0,24,S M505->Y:$C016,8,16,S M506->Y:$C010,0,24,U M510->X:$C010,10,1 M511->X:$C010,11,1 M512->X:$C010,12,1 M513->X:$C010,13,1 M514->X:$C010,14,1 M516->X:$C010,16,1 M517->X:$C010,17,1 M518->X:$C010,18,1 M519->X:$C010,19,1 M520->X:$C010,20,1 M521->X:$C010,21,1 M522->X:$C010,22,1 M523->X:$C010,23,1 ; Motor #5 Status Bits M530->Y:$0B14,11,1 M531->X:$012D,21,1 M532->X:$012D,22,1 M533->X:$012D,13,1 M535->X:$012D,15,1 M537->X:$012D,17,1 M538->X:$012D,18,1 M539->Y:$0B14,14,1
PMAC 2 Software Reference M581->Y:$0B17,21,1 ; &5 Circle-radius-error bit M582->Y:$0B17,22,1 ; &5 Run-time-error bit M584->X:$0B18,4,1 ; &5 Continuous motion request M587->Y:$0B17,17,1 ; &5 In-position bit (AND of motors) M588->Y:$0B17,18,1 ; &5 Warning-following-error bit (OR) M589->Y:$0B17,19,1 ; &5 Fatal-following-error bit (OR) M590->Y:$0B17,20,1 ; &5 Amp-fault-error bit (OR of motors) ; Motor #5 Axis Definition Registers M591->L:$0B22 ; #5 X/U/A/B/C-Axis scale factor (cts/unit) M592->L:$0B23 ; #5 Y/V-
PMAC 2 Software Reference M645->Y:$0BD4,10,1 ; Motor #6 Move Registers M661->D:$0154 M662->D:$0157 M663->D:$0BCB M664->D:$0BD3 M665->L:$081B M666->X:$015F,0,24,S M667->D:$0159 ; #6 Home-complete bit ; #6 Commanded position (1/[Ix08*32] cts) ; #6 Actual position (1/[Ix08*32] cts) ; #6 Target (end) position (1/[Ix08*32] cts) ; #6 Position bias (1/[Ix08*32] cts) ; &1 C-axis target position (engineering units) ; #6 Actual velocity (1/[Ix09*32] cts/cyc) ; #6 Present master (handwheel) pos (1/[Ix07*32] cts ; of
PMAC 2 Software Reference M718->X:$C018,18,1 M719->X:$C018,19,1 M720->X:$C018,20,1 M721->X:$C018,21,1 M722->X:$C018,22,1 M723->X:$C018,23,1 ; Motor #7 Status Bits M730->Y:$0C94,11,1 M731->X:$01A5,21,1 M732->X:$01A5,22,1 M733->X:$01A5,13,1 M735->X:$01A5,15,1 M737->X:$01A5,17,1 M738->X:$01A5,18,1 M739->Y:$0C94,14,1 M740->Y:$0C94,0,1 M741->Y:$0C94,1,1 M742->Y:$0C94,2,1 M743->Y:$0C94,3,1 M745->Y:$0C94,10,1 ; Motor #7 Move Registers M761->D:$0190 M762->D:$0193 M763->D:$0C8B M764->D:$0C93 M765->L:$081C M766->X:$
PMAC 2 Software Reference M793->L:$0CA4 ; #7 Z/W-Axis scale factor (cts/unit) M794->L:$0CA5 ; #7 Axis offset (cts) ; Coordinate System &7 Variables M797->X:$0C86,0,24,S ; &7 Host commanded time base (I10 units) M798->X:$0C88,0,24,S ; &7 Present time base (I10 units) ; Registers associated with Encoder/DAC8 (Usually Motor #8) M801->X:$C01D,0,24,S ; ENC8 24-bit counter position M802->Y:$C01A,8,16,S ; DAC8 16-bit analog output M803->X:$C01F,0,24,S ; ENC8 capture/compare position register M804->X:$0727,0,24,S
PMAC 2 Software Reference M868->X:$01E9,8,16,S ; #8 Filter Output (DAC bits) M869->D:$01EA ; #8 Compensation correction M870->D:$01E5 ; #8 Present phase position; includes fraction in Y-register M871->X:$01E5,0,24,S ; #8 Present phase position (counts*Ix70) M872->L:$0D6B ; #8 Variable jog position/distance (counts) M873->Y:$0D55,0,24,S ; #8 Encoder home capture offset (counts) M874->Y:$0D6A,24,S ; #8 Averaged actual velocity (1/[Ix09*32] cts/cyc) ; Coordinate System &8 Status Bits M880->X:$0D58,0,1 ; &8 Pr
PMAC 2 Software Reference M923->Y:$FFD0,23,1 M924->Y:$FFD1,0,1 M925->Y:$FFD1,1,1 M926->Y:$FFD1,2,1 M927->Y:$FFD1,3,1 M928->Y:$FFD1,4,1 M929->Y:$FFD1,5,1 M930->Y:$FFD1,6,1 M931->Y:$FFD1,7,1 M932->Y:$FFD1,8,1 M933->Y:$FFD1,9,1 M934->Y:$FFD1,10,1 M935->Y:$FFD1,11,1 M936->Y:$FFD1,12,1 M937->Y:$FFD1,13,1 M938->Y:$FFD1,14,1 M939->Y:$FFD1,15,1 M940->Y:$FFD1,16,1 M941->Y:$FFD1,17,1 M942->Y:$FFD1,18,1 M943->Y:$FFD1,19,1 M944->Y:$FFD1,20,1 M945->Y:$FFD1,21,1 M946->Y:$FFD1,22,1 M947->Y:$FFD1,23,1 ; MI/O23 ; MI/O24 ;
PMAC 2 Software Reference PMAC2 SUGGESTED M-VARIABLE DEFINITIONS ; This file contains suggested definitions for M-variables on the PMAC2. It is similar to the file for the PMAC(1) family of boards, but there are significant differences in the input/output definitions, both for servo registers and general-purpose I/O. Note that these are only suggestions; the user is free to make whatever definitions are desired. ; Clear existing definitions CLOSE M0..
PMAC 2 Software Reference M37->Y:$E800,2 M38->X:$C081,0,8 M39->Y:$E800,3 ; Buffer direction control for I/O16 to I/O23 ; Direction control for I/O24 to I/O31 ; Buffer direction control for I/O24 to I/O31 ; JTHW Thumbwheel Multiplexer Port M-variables M40->Y:$C082,8 ; SEL0 Line; J2 Pin 4 M41->Y:$C082,9 ; SEL1 Line; J2 Pin 6 M42->Y:$C082,10 ; SEL2 Line; J2 Pin 8 M43->Y:$C082,11 ; SEL3 Line; J2 Pin 10 M44->Y:$C082,12 ; SEL4 Line; J2 Pin 12 M45->Y:$C082,13 ; SEL5 Line; J2 Pin 14 M46->Y:$C082,14 ; SEL6 Line;
PMAC 2 Software Reference M111->X:$C005,11 M112->X:$C005,12 M114->X:$C005,14 M115->X:$C000,19 M116->X:$C000,9 M117->X:$C000,11 M118->X:$C000,8 M119->X:$C000,14 M120->X:$C000,16 M121->X:$C000,17 M122->X:$C000,18 M123->X:$C000,15 M124->X:$C000,20 M125->X:$C000,21 M126->X:$C000,22 M127->X:$C000,23 M128->X:$C000,20,4 ; ENC1 compare initial state write enable ; ENC1 compare initial state ; AENA1 output status ; USER1 flag input status ; ENC1 compare output value ; ENC1 capture flag ; ENC1 count error flag ; CH
PMAC 2 Software Reference ; Coordinate System &1 Status Bits M180->X:$0818,0,1 M181->Y:$0817,21,1 M182->Y:$0817,22,1 M184->X:$0818,0,4 M187->Y:$0817,17,1 M188->Y:$0817,18,1 M189->Y:$0817,19,1 M190->Y:$0817,20,1 ; &1 Program-running bit ; &1 Circle-radius-error bit ; &1 Run-time-error bit ; &1 Continuous motion request ; &1 In-position bit (AND of motors) ; &1 Warning-following-error bit (OR) ; &1 Fatal-following-error bit (OR) ; &1 Amp-fault-error bit (OR of motors) ; Motor #1 Axis Definition Registers M
PMAC 2 Software Reference ; Motor #2 Status Bits M230->Y:$08D4,11,1 M231->X:$0079,21,1 M232->X:$0079,22,1 M233->X:$0079,13,1 M235->X:$0079,15,1 M237->X:$0079,17,1 M238->X:$0079,18,1 M239->Y:$08D4,14,1 M240->Y:$08D4,0,1 M241->Y:$08D4,1,1 M242->Y:$08D4,2,1 M243->Y:$08D4,3,1 M245->Y:$08D4,10,1 ; #2 Stopped-on-position-limit bit ; #2 Positive-end-limit-set bit ; #2 Negative-end-limit-set bit ; #2 Desired-velocity-zero bit ; #2 Dwell-in-progress bit ; #2 Running-program bit ; #2 Open-loop-mode bit ; #2 Amplifi
PMAC 2 Software Reference ; Gate Array Registers for Channel 3 M301->X:$C011,0,24,S M302->Y:$C012,8,16,S M303->X:$C013,0,24,S M304->Y:$C013,8,16,S M305->X:$0712,8,16,S M306->Y:$0712,8,16,S M307->Y:$C014,8,16,S M308->Y:$C017,0,24,S M309->X:$C017,0,24,S M310->X:$C016,0,24,S M311->X:$C015,11 M312->X:$C015,12 M314->X:$C015,14 M315->X:$C010,19 M316->X:$C010,9 M317->X:$C010,11 M318->X:$C010,8 M319->X:$C010,14 M320->X:$C010,16 M321->X:$C010,17 M322->X:$C010,18 M323->X:$C010,15 M324->X:$C010,20 M325->X:$C010,21 M3
PMAC 2 Software Reference M365->L:$0821 M366->X:$00AB,0,24,S M367->D:$00A5 M368->X:$00BB,8,16,S M369->X:$00C2 M370->D:$00B8 M371->X:$00B8,24,S M372->L:$09AB M373->Y:$0995,24,S M374->Y:$09AA,24,S ; &1 Z-axis target position (engineering units) ; #3 Actual velocity (1/[Ix09*32] cts/cyc) ; #3 Present master pos (1/[Ix07*32] cts) ; #3 Filter Output (DAC bits) ; #3 Compensation correction (1/[Ix08*32] cts) ; #3 Present phase position (including fraction) ; #3 Present phase position (counts*Ix70) ; #3 Variable
PMAC 2 Software Reference M420->X:$C018,16 M421->X:$C018,17 M422->X:$C018,18 M423->X:$C018,15 M424->X:$C018,20 M425->X:$C018,21 M426->X:$C018,22 M427->X:$C018,23 M428->X:$C018,20,4 ; CHC4 input status ; PLIM4 flag input status ; MLIM4 flag input status ; FAULT4 flag input status ; Channel 4 W flag input status ; Channel 4 V flag input status ; Channel 4 U flag input status ; Channel 4 T flag input status ; Channel 4 TUVW inputs as 4-bit value ; Motor #4 Status Bits M430->Y:$0A54,11,1 M431->X:$00F1,21,1 M
PMAC 2 Software Reference M490->Y:$0A57,20,1 ; &4 Amp-fault-error bit (OR of motors) ; Motor #4 Axis Definition Registers M491->L:$0A62 M492->L:$0A63 M493->L:$0A64 M494->L:$0A65 ; #4 X/U/A/B/C-Axis scale factor (cts/unit) ; #4 Y/V-Axis scale factor (cts/unit) ; #4 Z/W-Axis scale factor (cts/unit) ; #4 Axis offset (cts) ; Coordinate System &4 Variables M497->X:$0A46,0,24,S M498->X:$0A48,0,24,S ; &4 Host commanded time base (I10 units) ; &4 Present time base (I10 units) ; Gate Array Registers for Chann
PMAC 2 Software Reference M540->Y:$0B14,0,1 M541->Y:$0B14,1,1 M542->Y:$0B14,2,1 M543->Y:$0B14,3,1 M545->Y:$0B14,10,1 ; #5 In-position bit ; #5 Warning-following error bit ; #5 Fatal-following-error bit ; #5 Amplifier-fault-error bit ; #5 Home-complete bit ; Motor #5 Move Registers M561->D:$0118 M562->D:$011B M563->D:$0B0B M564->D:$0B13 M565->L:$081A M566->X:$0123,0,24,S M567->D:$011D M568->X:$0133,8,16,S M569->D:$013A M570->D:$0130 M571->X:$0130,24,S M572->L:$0B2B M573->Y:$0B15,24,S M574->Y:$0B2A,24,S ;
PMAC 2 Software Reference M608->Y:$C02F,0,24,S M609->X:$C02F,0,24,S M610->X:$C02E,0,24,S M611->X:$C02D,11 M612->X:$C02D,12 M614->X:$C02D,14 M615->X:$C028,19 M616->X:$C028,9 M617->X:$C028,11 M618->X:$C028,8 M619->X:$C028,14 M620->X:$C028,16 M621->X:$C028,17 M622->X:$C028,18 M623->X:$C028,15 M624->X:$C028,20 M625->X:$C028,21 M626->X:$C028,22 M627->X:$C028,23 M628->X:$C028,20,4 ; ENC6 compare A position ; ENC6 compare B position ; ENC6 compare autoincrement value ; ENC6 compare initial state write enable ; E
PMAC 2 Software Reference M672->L:$0BEB M673->Y:$0BD5,24,S M674->Y:$0BEA,24,S ; #6 Variable jog position/distance (cts) ; #6 Encoder home capture position (cts) ; #6 Averaged actual velocity (1/[Ix09*32] cts/cyc) ; Coordinate System &6 Status Bits M680->X:$0BD8,0,1 M681->Y:$0BD7,21,1 M682->Y:$0BD7,22,1 M684->X:$0BD8,0,4 M687->Y:$0BD7,17,1 M688->Y:$0BD7,18,1 M689->Y:$0BD7,19,1 M690->Y:$0BD7,20,1 ; &6 Program-running bit ; &6 Circle-radius-error bit ; &6 Run-time-error bit ; &6 Continuous motion request ;
PMAC 2 Software Reference M727->X:$C030,23 M728->X:$C030,20,4 ; Channel 7 T flag input status ; Channel 7 TUVW inputs as 4-bit value ; Motor #7 Status Bits M730->Y:$0C94,11,1 M731->X:$01A5,21,1 M732->X:$01A5,22,1 M733->X:$01A5,13,1 M735->X:$01A5,15,1 M737->X:$01A5,17,1 M738->X:$01A5,18,1 M739->Y:$0C94,14,1 M740->Y:$0C94,0,1 M741->Y:$0C94,1,1 M742->Y:$0C94,2,1 M743->Y:$0C94,3,1 M745->Y:$0C94,10,1 ; #7 Stopped-on-position-limit bit ; #7 Positive-end-limit-set bit ; #7 Negative-end-limit-set bit ; #7 Desir
PMAC 2 Software Reference ; Coordinate System &7 Variables M797->X:$0C86,0,24,S M798->X:$0C88,0,24,S ; &7 Host commanded time base (I10 units) ; &7 Present time base (I10 units) ; Gate Array Registers for Channel 8 M801->X:$C039,0,24,S M802->Y:$C03A,8,16,S M803->X:$C03B,0,24,S M804->Y:$C03B,8,16,S M805->X:$0717,8,16,S M806->Y:$0717,8,16,S M807->Y:$C03C,8,16,S M808->Y:$C03F,0,24,S M809->X:$C03F,0,24,S M810->X:$C03E,0,24,S M811->X:$C03D,11 M812->X:$C03D,12 M814->X:$C03D,14 M815->X:$C038,19 M816->X:$C038,9
PMAC 2 Software Reference ; Motor #8 Move Registers M861->D:$01CC M862->D:$01CF M863->D:$0D4B M864->D:$0D53 M865->L:$081D M866->X:$01D7,0,24,S M867->D:$01D1 M868->X:$01E7,8,16,S M869->D:$01EE M870->D:$01E4 M871->X:$01E4,24,S M872->L:$0D6B M873->Y:$0D55,24,S M874->Y:$0D6A,24,S ; #8 Commanded position (1/[Ix08*32] cts) ; #8 Actual position (1/[Ix08*32] cts) ; #8 Target (end) position (1/[Ix08*32] cts) ; #8 Position bias (1/[Ix08*32] cts) ; &1 V-axis target position (engineering units) ; #8 Actual velocity (
PMAC 2 Software Reference M913->Y:$FFD0,13,1 M914->Y:$FFD0,14,1 M915->Y:$FFD0,15,1 M916->Y:$FFD0,16,1 M917->Y:$FFD0,17,1 M918->Y:$FFD0,18,1 M919->Y:$FFD0,19,1 M920->Y:$FFD0,20,1 M921->Y:$FFD0,21,1 M922->Y:$FFD0,22,1 M923->Y:$FFD0,23,1 M924->Y:$FFD1,0,1 M925->Y:$FFD1,1,1 M926->Y:$FFD1,2,1 M927->Y:$FFD1,3,1 M928->Y:$FFD1,4,1 M929->Y:$FFD1,5,1 M930->Y:$FFD1,6,1 M931->Y:$FFD1,7,1 M932->Y:$FFD1,8,1 M933->Y:$FFD1,9,1 M934->Y:$FFD1,10,1 M935->Y:$FFD1,11,1 M936->Y:$FFD1,12,1 M937->Y:$FFD1,13,1 M938->Y:$FFD1,14,1 M
PMAC 2 Software Reference M1003->Y:$070B,0,12,{f} M1004->Y:$070C,0,12,{f} M1005->Y:$070D,0,12,{f} M1006->Y:$070E,0,12,{f} M1007->Y:$070F,0,12,{f} M1008->Y:$0708,12,12,{f} M1009->Y:$0709,12,12,{f} M1010->Y:$070A,12,12,{f} M1011->Y:$070B,12,12,{f} M1012->Y:$070C,12,12,{f} M1013->Y:$070D,12,12,{f} M1014->Y:$070E,12,12,{f} M1015->Y:$070F,12,12,{f} ; ANAI03 image register; from J1 pin 4 ; ANAI04 image register; from J1 pin 5 ; ANAI05 image register; from J1 pin 6 ; ANAI06 image register; from J1 pin 7 ; ANAI07
PMAC 2 Software Reference PMAC2 Suggested M-Variable Definitions 489
PMAC 2 Software Reference PMAC FIRMWARE UPDATES To update to a new revision of firmware: Battery-backed PMAC(1) boards For a PMAC(1) controller with battery-backed main memory, the firmware is located in a PROM IC that cannot be written to in the field. For these controllers, the existing PROM IC must be removed from its socket on the board, and a new PROM IC installed in its place.
PMAC 2 Software Reference Update Summary: From V1.15 to V1.16 (July 1996) Changes 1. With I99=0 backlash hysteresis is 0 counts, not 4 counts. o 2. With I89=0 cutter comp outside corners only add arc if change in directed angle is greater than 90 ; o formerly 1 . 3. Default changed from 10 to 0. 4. Default changed from 0 to 37137 (1 second slew by default). -20 5. Full circles executed on any arc command (with IJK center specification) smaller than 2 part of circle -34 (0.
PMAC 2 Software Reference 11. Ix63 -- Range extended; negative values permit integrated following error fault. 12. Ix80 -- Range extended to support “stepper” power-on phasing search. 13. Ix81 -- Range extended to support hall-effect phase read. 14. Ix83 -- Range extended: bit 19=1 specifies Y-register feedback. 15. I1000 -- MACRO node auxiliary register enable. 16. I1001 -- MACRO Ring Check Time Period. 17.
PMAC 2 Software Reference Refinements 1. Full circle moves always executed after starting position recalculated due to PMATCH or axis matrix transformation (more tolerance between start and end positions permitted; see Changes, above). 2. DISPLAY of I-variables fixed. 3. Fast versions of PMAC can interface to ACC-8D Opt 9. 4. Fast versions of PMAC can interface to NC control panel and ACC-34C. 5. O-commands now saturate at +/-100% of Ix69. 6.
PMAC 2 Software Reference 10. Corrected rotary program buffer operation so that rollover of buffer does not count as “jump back” for purposes of “double jump back” blending stop. 11. Corrected intermittent background MACRO Type 1 data read problem. 12. Improved efficiency of background MACRO Type 0 data read/write. 13. Corrected intermittent problem in resolver absolute read. 14. Corrected intermittent problem in MACRO Yaskawa absolute encoder read. 15.
PMAC 2 Software Reference Update Summary: From V1.16D to V1.16F (June 1999) {Note: V1.16E was never released} 1. Fixed listing of GOSUB{expression} – had listed as GOTO {expression} . 2. Permitted more flexibility in detecting MACRO communications errors in I1001 servo cycles by use of new variables I1004 and I1005. 3. Made MACRO communications error checking more predictable by moving check from background to real-time interrupt 4.
PMAC 2 Software Reference 25. If vector distance of feedrate axes in a feedrate-specified move is 0, the programmed feedrate is used to control the speed of the non-feedrate axes in the move. The axis with the longest distance is moved at the programmed feedrate; other axes move with the same move time. 26. When in feed hold mode and no program running (also no motor jogging), a Run or Step command now starts program in addition to clearing from feed hold mode. 27.
PMAC 2 Software Reference Update Summary: From V1.16G to V1.16H (Sept 2000) 1. Fixed problem when issuing a CMD”PMATCH” from within a motion program. 2. Fixed floating-point underflow problem that could produce very large values. 3. Fixed operation of homing-search move if previous homing-search move was interrupted by a K (kill) command. 4. Improved accuracy of high-resolution encoder interpolation calculations in conversion table. 5.
PMAC 2 Software Reference Update Summary: From V1.17 to V1.17A (Jan 2002, FLEX CPU only) 1. New variable I66 permits disabling of autocopy of servo-channel ADC registers to RAM each phase cycle. This autocopying is no longer necessary for robust background reads of these registers, so disabling saves time and permits proper interface of ACC-51P interpolator ADCs. 2. Permitted PMAC to accept comments after M-variable definition statements without returning an error. Update Summary: From V1.17A to V1.
PMAC 2 Software Reference 25. Added five-line diagnostic method entry for highly interpolated sinusoidal encoders ($F) enabled by setting bit 19 of first setup line to 1, to calculate sum-of-squares magnitude or sine/cosine bias word (Geo PMAC only). 26. Added amplifier status/fault code for seven-segment display (Geo PMAC only), including CLEARFAULT command to reset display. 27.