Home

Universal PMAC Lite Manual

image

Contents

1. 0 Use amplifier enable function 1 Do not use amplifier enable function 0 Enable position limits 1 Disable position limits 70 Enable amplifier fault input 1 Disable amplifier fault input 00 Kill all PMAC motors on fault or F E 01 Kill all C S motors on fault or F E 1x Kill this motor only on fault or F E 70 Low true fault input 1 High true fault input Amplifier Enable Use Bit With bit 16 equal to zero the normal case the AENAn DIRn output is used as an amplifier enable line off when the motor is killed on when it is enabled Voltage polarity is determined by jumper s E17 If bit 16 value 10000 or 65536 is set to one e g 1125 1C000 this output is not used as an amplifier enable line This permits use of the line as a direction bit for applications requiring magnitude and direction outputs such as driving steppers through voltage to frequency converters Setting bit 16 of Ix02 to 1 enables use of this output as a direction bit General purpose use of this output is also possible by assigning an M variable to it 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 The direction sense of
2. 12 In some cases when the electromagnetic noise affecting an input signal cannot be minimized otherwise use an RC filter The values ofthe RC filter must be carefully selected in order to not interfere with the safe operation of the input signal to filter Page 22 4 0 Machine Connections Typically the user connections are actually made to the Accessory 8P terminal block that is attached to the JMACH connector by a flat cable The pinout numbers on the terminal block are the same as those on the JMACH connector for PMAC Lite Power Supplies Digital Power Supply 1 75 A 5V 4 5 8 75 W Four channel configuration with a typical load of encoders The host computer provides the 5 Volts power supply in the case PMAC is installed in its internal bus With the board plugged into the bus it will automatically pull 5V power from the bus and it cannot be disconnected In this case there must be no external 5V supply or the two supplies will fight each other possibly causing damage This voltage could be measured between pins and 3 of the terminal block Ina stand alone configuration when PMAC is not plugged in a computer bus it will need an external five volt supply to power its digital circuits The 5V line from the supply should be connected to pin 1 or 2 of the terminal block and the digital ground to pin 3 or 4 Analog Power Supply 0 3A 12 to 15V 4 5W 0 25A
3. JMACH1 JMACH1 15 V 59 59 15 V To the amplifier ble signal 47 AENA1 enable signa 47 AENA1 4 0 Machine Connections gt To the amplifier enable signal a The DACs screen of the EZ PMAC Setup Software allows changing the state of the amplifier enable signal which could then be measured with a voltmeter Amplifier Enable Jumpers Summary Table Amplifier Enables with PMAC Jumper Configuration Output Chip U54 AGND fail safe E17 OFF E100 1 2 El01 1 2 E102 1 2 ULN2803A default 12 15 Volts EI7 ON E100 1 2 E101 1 2 E102 1 2 ULN2803A default 12 15 Volts fail safe E17 OFF E100 1 2 E101 2 3 E102 2 3 UDN2981A must replace 15 24 Volts E17 ON E100 2 3 E101 1 2 E102 1 2 ULN2803A default 15 24 Volts fail safe E17 OFF E100 2 3 E101 2 3 E102 2 3 UDN2981A must replace Other use relay E17 OFF E100 1 2 E101 1 2 E102 12 ULN2803A default Fail safe indicates that the output chip must be properly operating for the amplifier enable output to enable the amplifier Other configurations might still enable the amplifier even if the output chip is damaged or not operating properly Amplifier fault signal FAULTn This input can take a signal from the amplifier so PMAC knows when the amplifier is having problems and can shut down a
4. IO I75 General card setup global I76 I99 Dual speed resolver setup 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 In this chapter some I variables might be expressed as for example Ix00 In the case of a motor I variable x stands for the motor number in the range of 1 through 8 In the case of a Coordinate System I variable x stands for the coordinate system number also in the range of 1 through 8 manual illustrates the implementation of PMAC in a typical application some of the PMAC advanced I variables are not described Further information of all the PMAC I variables can be obtained from the PMAC Software Reference manual The PMAC motion controller is very rich in features and expansion capabilities Because this GLOBAL I VARIABLES I1 Serial Port Mode Range 0 3 Default 0 Units none Remarks This parameter controls two aspects of how PMAC uses its serial port The first aspect is whether PMAC uses the CS CTS handshake line to decide if it can send a character out the serial port The second aspect is whether PMAC will require software card addressing permitting multiple cards to be daisychained on a single serial
5. Control Panel Disable none I O Handshake Mode none Communications Checksum Enable none PLC Programs On Off none Error Reporting Mode we 2 wo Ww none In Position of Consecutive Cycles Background computation cycles minus one Real Time Interrupt Period 255 Servo Interrupt Cycles Full Abbrev Listing Form MESI NIN SolwlololRelRelo none Servo Interrupt Time 8 388 607 1 8 388 608 msec Program Move Calc Time 8 388 607 0 msec Jog to Pos Calc Time 8 388 607 10 msec Programmed Move Segmentation Time 8 388 607 0 msec Auto Position Match On Run Enable al 1 none Deg Radians for User Trig al 0 degrees none Rotary Buffer Request On Point 8 388 607 5 Command lines Rotary Buffer Request Off Point 8 388 607 10 Program lines Fixed Buffer Full Warning Point Data Gathering I Variables c olo oeooc ocoooooooococcoc 8 388 607 Range 10 Default Long Memory Words Units Data Gathering Period In Servo Cycles 0 8 388 607 1 Servo Interrupt Cycles Data Gathering Selection Mask 000000 SFFFFFF 0 none Data Gathering Source 1 Address 000000 FFFFFF 0 Modified PMAC addresses Data Gathering Source 2 thru 24 Addresses 000000 FFFFFF Modified PMAC addresses Da
6. Examples IF M11 1 This branch increments P1 every cycle that AND M12 0 inputs M11 and M12 are different and decrements OR M11 0 them every cycle that they are the same AND M12 1 Pl1 P141 ELSE Pl1 P1 1 ENDIF IF M11 1 AND M12 0 This does the same as above OR M11 0 AND M12 1 P1 P1 1 ELSE P1 P1 1 ENDIF 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 The assignment is done as the line is processed which in a motion program is usually one or two moves ahead of the move actually executing at the time because of the need to calculate ahead in the program Page 231 10 Buffer Commands Examples P1 0 P746 P20 P40 P893 SIN Q100 0 5 PSET Function Redefine current axis positions Position SET Type Motion program Syntax PSET 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 or an expression representing the new value for this axis position Remarks This command allows the user to re define the value of an axis position in the middle of
7. Examples CLOSE This makes sure all buffers are closed OPEN PROG 1 Open motion program buffer 1 CLEAR Clear out this buffer F1000 Program actually starts here X2500 and ends on this line CLOSE This closes the program buffer LIST PROG 1 Requestlisting of closed program F1000 PMAC starts listing X2500 RETURN This was appended by the CLOSE command Page 153 9 0 Online Commands constant Function Assign value to variable PO or to table entry Scope Global Syntax constant where constant isa floating point value Remarks This command is the equivalent of PO constant That is a value entered by itself on a command line will be assigned to P variable PO 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 PO and use it as appropriate Note Ifa special table on PMAC e g STIMULUS COMP has been defined but not filled a constant value will be entered into this table not into PO Examples In a motion program P0 1 Set PO to an illegal value SEND Enter number of parts in run Prompt operator at dumb terminal Operator simply needs to type in number WHILE P0 lt 1 WAIT Hold until get legal response P1 0 Initialize part counter WHILE PO0 P1 Loop once per part P1 P1 1 DATE Function Report PROM firmware revision date Scope
8. Jogging To A Specified Position Jog commands to a specified position or of a specified distance can be given J commands a jog to the last pre jog position J constant commands a jog to the unscaled position specified in the command J constant commands a jog to the unscaled position specified in the command and makes that position the pre jog position J constant commands a jog of the specified distance from the actual position at the time of the command J 0 can be useful to take up remaining following error J constant commands a jog of the specified distance from the commanded position at the time of the command Jog Moves Specified By A Variable Jogging moves to a position or of a distance specified by a variable are possible Each motor has a specific register L 082B for motor 1 L 08EB for motor 2 etc that holds the position or distance to move on the next variable jog command This register contains a floating point value scaled in encoder counts It should be accessed with an L format M variable The J command causes PMAC to use this value as a destination position The J command causes PMAC to use the value as a distance from the actual position at the time of the command The J command causes PMAC to use the value as a distance from the commanded position at the time of the command Each time one of these commands is given the acceleration and velocity parameters at that time control the response t
9. DIS PLC 3 8 11 DIS PLC 0 31 DISPLAY constant message Function Display Text to Display Port Type Motion program PROG and ROT PLC program Syntax DISPLAY constant message DISP constant message where constant is an integer value between 0 and 79 specifying the starting character number on the display if no value is specified 0 is used 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 Page 211 10 Buffer Commands Examples DISPLAY 10 Hello World DISP VALUE OF P1 IS DISP 15 8 3 P1 DISPLAY variable Function Formatted Display of Variable Value Type Motion program PROG and ROT PLC program Syntax DISPLAY constant constant constant variable DISP constant constant constant variable where the first constant is an integer from 0 to 79 representing the starting location character number on the display the second constant is an integer from 2 to 16 representing the total number of characters to be used to display the value integer digits decimal point
10. Reset card I130 Request value of 1130 60000 PMAC responds with saved value 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 Examples DEFINE GATHER Reserve all remaining memory for gathering SIZE Ask for amount of open memory 0 PMAC reports none available DELETE GATHER Free up memory from gathering buffer SIZE Ask for amount of open memory 41301 PMAC reports number of words available OPEN PROG 10 Open a motion program buffer SIZE Ask for amount of open memory 41302 The negative sign shows a buffer is open TYPE Function Report type of PMAC Scope Global Syntax TYPE Remarks This command causes PMAC to return a string reporting the configuration of the card It will report the configuration as a text string in the format PMAC type Bus type Backup type Servo Type Ladder type Clock Multiplier where PMAC type Page 191 9 0 Online Commands PMAC1 First generation PMAC including PMAC 1 5 PMAC2 Second generation PMAC PMACUL Ultra lite MACRO only PMAC2 Bus typej ISA IBM PC ISA bus VME VME bus STD
11. it represents the number of the end of the range Remarks This command causes PMAC to reference the specified M variable or range of M variables to its own definition word If you just wish to use an M variable as a flag status bit counter or other simple variable there is no need to find an open area Page 176 9 0 Online Commands of memory because it is possible to use some of the definition space to hold the value Simply define this form ofthe M variable and you can use this M variable much as you would a P variable except it only takes integer values in the range 1 048 576 to 1 048 575 220 to 4220 1 When the definition is made the value is automatically set to 0 This command is also useful to erase an existing M variable definition Examples M100 gt M20 39 gt MO 1023 gt This erases all existing M variable definitions It is a good idea to use this before loading new ones M constant gt D address Function Long Fixed Point M Variable Definition Scope Global Syntax M constant constant gt D address where constant is an integer from 0 to 1023 representing the number of the M variable 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 Remarks This command causes PMAC to define the speci
12. 12 to 15V 3 8W Eight channel configuration The analog output circuitry is the part of PMAC circuitry directly related to the amplifier signals like the DAC command outputs and amplifier fault enable lines The analog circuitry on PMAC is optically isolated from the digital computation circuitry and so requires a separate power supply This is brought in on the JMACH connector The positive supply 12 to 15 volts should be brought in on the A 15V line on pin 59 The negative supply 12 to 15V should be brought in on the A 15V line on pin 60 The analog common important should be brought in on the AGND line on pin 58 Typically this supply can come from the servo amplifier many commercial amplifiers provide such a supply If this is not the case an external supply may be used Even with an external supply the AGND line should be tied to the amplifier common It is possible to get the power for the analog circuits from the bus but doing so defeats optical isolation In this case no new connections need to be made However you should be sure jumpers E85 E87 E88 E89 and E90 are set up for this circumstance The card is not shipped from the factory in this configuration The PMAC installed in an ISA bus can either use the bus 12 Volts power supply or an external 15 Volts power supply It is strongly recommended to use an external power supply that will keep the digital and analog circuits separate and that will p
13. BSTART 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 Page 204 10 Buffer Commands 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 This structure is particularly useful for executing a single sequence of PVT mode moves because the individual segments do not end at zero velocity making normal stepping very difficult Examples For the program segment BLOCKSTART INC X10 100 X20 100 X20 100 X10 0 BLOCKSTOP All four move segments will be executed on a single S command BLOCKSTOP Function Mark End of Stepping Block Type Motion program PROG and ROT Syntax BLOCKSTOP BSTOP Remarks This statement marks the end of the block of statements begun with a BLOCKSTART to be done on a single step command or to be blended together even if Ix92 1 move blending disabled This does not affect how a program is executed from a run command if Ix92 1 Examples See example under BLOCKSTART above C data Function C Axis Move Type Motion program PROG and ROT Syntax C data where data is a floating point constant or expression representing the p
14. F Ask for following error of addressed motor 12 PMAC responds 3F Ask for following error of Motor 3 6 7 PMAC responds FRAX Function Specify the coordinate system s feedrate axes Scope Coordinate system specific Syntax FRAX FRAX axis axis where axis optional is a character X Y Z A B C U V W specifying which axis is to be used in the vector feedrate calculations Remarks This command specifies which axes are to be involved in the vector feedrate velocity calculations for upcoming feedrate specified F moves PMAC calculates the time for these moves as the vector distance square root of the sum of the squares of the axis distances of all the feedrate axes divided by the feedrate Any non feedrate axes commanded on the same line will complete in the same amount of time moving at whatever speed is necessary to cover the distance in that time Vector feedrate has obvious geometrical meaning only in a Cartesian system for which it results in constant tool speed regardless of direction but it is possible to specify for non Cartesian systems and for more than three axes If only non feedrate axes are commanded to move in a feedrate specified move PMAC will compute the vector distance and therefore the move time as zero and will attempt to do the move in the acceleration time TA or 2 TS possibly limited by the maximum velocity and or acceleration parameters for the motor s This will
15. J Y axis direction and K Z axis direction The ratio of the component magnitudes determines the orientation of the normal vector and therefore ofthe plane The length of this vector does not matter it does not have to be a unit vector The direction sense of the vector does matter because it defines the clockwise sense of an arc move and the sense of cutter compensation offset PMAC uses a right hand rule that is in a right handed coordinate system I x J K if your right thumb points in the direction of the normal vector specified here your right fingers will curl in the direction of a clockwise arc in the circular plane and in the direction of offset right from direction of movement in the compensation plane Examples The standard settings to produce circles in the principal planes will therefore be NORMAL K 1 XY plane equivalent to G17 NORMAL J 1 ZX plane equivalent to G18 NORMAL I 1 YZ plane equivalent to G19 By using more than one vector component a circular plane skewed from the principal planes can be defined NORMAL I0 866 J0 500 NORMAL J25 K 25 NORMAL J SIN Q1 K COS Q1 NORMAL I P101 J P201 K 301 O constant Function Alternate Line Label Type Motion program PROG and ROT Syntax O constant where constant is an integer from 0 to 262 143 218 1 Remarks This is an alternate form of label in the motion program It allows the flow of execution to jump to that line
16. Jogging acceleration and velocity are determined by the values of Ix19 Ix22 in force at the time of this command Compare to J constant which is a jog relative to the present actual position A variable incremental jog command 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 ERROO1 if 16 is 1 or 3 Page 164 9 0 Online Commands Examples 1HM Do homing search move on Motor 1 J 2000 Jog a distance of 2000 counts to 2000 counts J 2000 Jog a distance of 2000 counts to 4000 counts E Function Jog to specified variable distance from present commanded position Scope Motor specific Syntax J Remarks This command causes the addressed motor to jog the distance specified in the motor s variable jog position distance register 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 Compare to J which is a jog relative to the present actual position The variable jog position distance register is a floating point register with units of counts It is best accessed with a floating point M variable The register is located at PMAC address L 082B for motor 1 L 08EB for motor 2 etc The usual procedure is to write the destination position to this register by assigning a value to the M variable then iss
17. M798 gt X 0C88 0 24 S M898 gt X 0D48 0 24 S Page 1 of 1 Tip copy this page zooming it into an 11 by 17 size Appendix 6 I O Suggested M variable Definitions Start Run Input M905 Y SFFDO 5 1 M906 Y FFDO6 1 Stop Abort Input M907 gt Y FFDO 7 1 M908 gt Y FFD0 8 1 M909 gt Y FFD0 9 1 M910 gt Y FFD0 10 1 M911 gt Y FFD0 11 1 M912 gt Y FFD0 12 1 M913 gt Y FFD0 13 1 M914 gt Y FFDO 14 1 M915 Y FFDO 15 1 M916 gt Y FFDO 16 1 M917 Y FFDO 17 1 M918 Y SFFDO 18 1 M919 Y SFFDO 19 1 M920 Y SFFD0 20 1 M921 Y SFFDO 21 1 M922 Y SFFD0 22 1 M923 gt Y FFDO 23 1 M924 sY FED1 0 1 Timer register 2 8388608 110 msec M925 gt Y FFD1 1 1 Timer register 3 8388608 110 msec M926 gt Y FED1 2 1 Timer register 4 8388608 110 msec M927 Y SFFD1 3 1 M928 gt Y FFD1 4 1 M929 gt Y FFD1 5 1 M930 gt Y FFD1 6 1 on reset M931 YSFFDI 7 Open registers stored WI batten parted M932 Y SFFD1 8 1 RAM M933 gt Y FFD1 9 1 M934 gt Y FFD1 10 1 M935 gt Y FFD1 11 1 M936 gt Y FFD1 12 1 M937 5Y FFD1 13 1 M938 gt Y FFD1 14 1 M939 gt Y FFD1 15 1 M940 gt Y FFD1 16 1 M941 gt Y FFD1 17 1 M942 gt Y FFD1 18 1 M943 gt Y FFD1 19 1 M944 gt Y FFD1 20 1 Page 1 of 1 Appendix 1 PMAC ERROR CODE SUMMARY I6 Error Reporting Mode This parameter controls how PMAC reports errors in command lines When I6 is set to 0 or 2 PMAC reports any error only with a BELL character When I6
18. USER MANUAL PMAC Guide DELTA TAU d Data Systems Inc NEW IDEAS IN MOTION 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 com O Delta Tau Data Systems Inc MMII Contents 1 0 INTRODUCTION 1 About this manual 1 What is PMAC 1 Configuring and programming PMAC 2 Hardware Setup 2 Software Setup 2 Programming PMAC 3 Universal PMAC Lite connectors and indicators 3 J1 Display Port Outputs JDISP Port 3 J2 Control Panel Port I O JPAN Port 3 J3 Thumbwheel Multiplexer Port I O JTHW Port 3 J4 RS 232 Serial Port Connection JRS232 Port 3 J4A RS 422 Serial Port Connection JRS422 Port 3 J5 General Purpose Digital Inputs and Outputs JOPTO Port 4 J6 Auxiliary I O Port Connector JXIO Port 4 J7 A D Port Connector JS1 Port 4 J8 Position Compare Connector JEQU Port 4 J11 Machine Connector JMACH Connector 4 TB1 Power Supply terminal block 4 LED Indicators 4 Fuse 4 Universal PMAC Lite dimensions 5 Universal PMAC Lite Jumpers and Connectors Layout 1 Default jumper configuration 7 If something goes wrong 8 Getting PMAC to communicate again 8 Resetting PMAC to factory defaults 8 Before you call us for help 8 2 0 PMAC JUMPER CONFIGURATION 9 Power Supply Configuration Jumpers 9 E8
19. 1 or jumper E3 on PMAC2 This is a hardware re initialization jumper 14 After power up try establishing communications again with a reliable software package like the PEWIN program provided by Delta Tau 15 On power up with the re initialization jumper installed some PMAC s with the flash memory option will be in a mode called bootstrap This means that will accept a binary file downloaded to change its internal firmware If this is the case follow the instructions on the PEWIN screen to disable the downloading process usually pressing CTRL R 16 Try communications with PEWIN and type the following commands when the terminal gets successfully open follow the communications troubleshooting section below in case communications are still not established SSS Global Reset PO 1023 0 Reset P variables values QO 1023 0 Reset Q variables values M0O 1023 MO 1023 0 Reset M variables definitions and values UNDEFINE ALL Undefine Coordinate Systems SAVE Save this initial clean configuration 17 Ifthe re initialization jumper was installed remove it at this time Restore PMAC in the computer and power it up 18 Try communications again and configure PMAC for your application It is strongly recommended to have a backup file saved in the host computer with all the parameters and programs that PMAC needs to run the application Furthermore since the host computer could also fail and be replaced save the configur
20. 122 10 0 ONLINE COMMANDS 123 lt CONTROL A gt 123 lt CONTROL B gt 123 lt CONTROL C gt 124 lt CONTROL D gt 124 lt CONTROL F gt 125 lt CONTROL G gt 125 lt CONTROL H gt 125 lt CONTROL I gt 126 lt CONTROL k gt 126 lt CONTROL M gt 126 lt CONTROL O gt 127 lt CONTROL P gt 127 lt CONTROL Q gt 128 lt CONTROL R gt 128 lt CONTROL S gt 129 lt CONTROL V gt 129 lt CONTROL X gt 129 lt CONTROL Y gt 130 lt CONTROL Z gt 130 131 constant 131 constant gt 132 constant gt 0 132 constant gt axis definition 133 o 134 135 136 136 constant amp constant amp 2 je 227 A ABS axis constant B constant CLEAR CLOSE constant DATE DEFINE TBUF DELETE GATHER DELETE TBUF DISABLE PLC ENABLE PLC F FRAX H HOME HOMEZ I constant I constant expression I constant 137 137 138 138 139 143 147 149 150 151 151 152 153 153 154 154 155 155 156 156 157 157 158 159 159 160 160 161 162 INC J J J J J constant J J J constant J constant J constant J jog command constant K LEARN LIST LIST PC LIST PE LIST PLC LIST PROGRAM M constant M constant expression M constant gt M constant gt M constant gt D address M constant gt L address M constant gt X Y address MFLUSH 16
21. 1J Jog Motor 1 to this position M172 P1 SIN P2 Assign new position value to register 1J Jog Motor 1 to this position 1J Return to prejog target position J constant Function Jog to specified motor position and make that position the pre jog position Scope Motor specific Syntax 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 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 ERRO01 if I6 is 1 or 3 Examples 13 10000 Jog Motor 1 to 10000 counts and make that the pre jog position J Jog indefinitely in the positive direction J Return to 10000 counts Page 167 9 0 Online Commands J constant Function Jog Relative to Actual Position Scope Motor specific Syntax J constant where constant is a floating point value specifying the distance to jog in counts Remarks This causes a motor to jog the distance specified by constant relative to the present actual position Jogging acceleration and velocity are determin
22. 5 Amp fault disabled only this motor killed on excess following error 6 Low true amp fault enabled only this motor killed on fault or excess following error 7 Amp fault disabled only this motor killed on excess following error 8 High true amp fault enabled all motors killed on fault or excess following error default 9 Amp fault disabled all motors killed on excess following error A High true amp fault enabled coordinate system motors killed on fault or excess following error B Amp fault disabled coordinate system motors killed on excess following error C High true amp fault enabled only this motor killed on fault or excess following error D Amp fault disabled only this motor killed on excess following error E High true amp fault enabled only this motor killed on fault or excess following error Amp fault disabled only this motor killed on excess following error Examples 1 Motor 1 using flags 1 with amp enable output and low true amp fault disabling all motors I125 00C000 or I125 CO000 2 Motor 1 using flags 1 with direction output and low true amp fault disabling all motors 1125 2 01C000 Page 108 6 0 I Variables 3 Motor 1 using flags 1 with amp enable output and low true amp fault disabling only coordinate system motors I125 20C000 4 Motor 1 using flags 1 with direction output and amp fault disabled with excess F E disabling all C S motors I125 31C000 5 Moto
23. 95 6 0 I Variables Ix02 Motor x Command Output DAC Address Range Extended legal PMAC X and Y addresses Default Motor Lvariable Hex Decimal DAC 1302 CO0B 49163 DAC3 1402 COOA 49162 DAC4 Units Extended legal PMAC X and Y addresses Remarks This parameter tells the PMAC where what address to put the output command for motor x The address may be specified as either a decimal or hexadecimal value Usually the output is directed towards a DAC register Non PMAC Commutated Motors If PMAC is not performing the commutation for motor x Ix02 should point directly to the DAC register in the DSP GATE Typically DACx is used for motor x but this is not required The addresses of DACI DACA are given in the default table above Extended Addressing The destination address of the output command occupies bits 0 to 15 of Ix02 range 0000 to FFFF or 0 to 65535 With bit 16 equal to zero the normal case the output is signed a negative output for a negative value and a positive output for a positive value Setting bit 16 to 1 provides a couple of interesting output options as explained below 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 Magnitude and Direction Output However if bit 16 of Ix02 value 65536 equals 1 and Ix01 0 no PM
24. E85 E87 E88 OFF OFF OFF The PMAC Lite board circuitry is divided in two parts that can be electrically isolated from each other The analog circuitry interfaces among other signals the amplifier control lines like the DAC 10 Volts command output and amplifier enable and fault signals The digital circuitry includes the CPU as well as the encoder input circuitry These jumpers control whether the analog circuitry on the PMAC Lite is isolated from the digital circuitry or electrically tied to it In the default configuration these jumpers are off keeping the circuits isolated from each other provided separate Isolated supplies are used Page 9 2 0 PMAC Jumper Configuration Putting E87 ON ties the digital GND reference signal to the analog AGND reference signal defeating the isolation between the circuits Putting E85 ON ties the digital 12V supply line to the analog A 15V supply line Putting E88 ON ties the digital 12V supply line to the analog A 15V supply line Putting these jumpers on permits the bus 12V supply to power PMAC s analog circuits E89 E90 Input Flag Supply Control Default Configuration E89 E90 ON 1 2 If E90 connects pins 1 and 2 and E89 is ON the input flags LIMn LIMn HMFLn and FAULTn are supplied from the analog A 15V supply which can be isolated from the digital circuitry If E90 connects pins 1 and 2 and E89 is OFF the input flags are suppli
25. PHASING CLOCK PO 6 RTS OUTPUT REQ TOSEND PMACREADYBIT 8 SERVO OUTPUT SERVOCLOK 9 GND COMMON PMACCOMMON S E The JRS232 connector provides the PMAC2 PC with the ability to communicate serially with an RS232 port E107 and E108 must connect pins 1 and 2 to use this connector Page 31 4 0 Machine Connections J4A JRS422 Serial Port Connector 25 0000000000000 1 J4A JRS422 26 PIN CONNECTOR 26 0000000000000 2 Front View PIN SYMBOL FUNCTION DESCRIPTION NOTES L1 cassi COMMON PMACCOMMON SSS 3 RD INPUT RECEIVE DATA DIFF IOLOWTRUE 6 s OUTPUT SENDDATA DIFFJOHIGHTRUE 3 cs Neur CLEAR TO SEND DIFFIOLOWTRUE 9 Re OUTPUT REQTOSEND DIFFIOHIGHTRUES 35 GND COMMON PMACCOMMON The JRS422 connector provides the PMAC with the ability to communicate both in RS422 and RS232 Jumpers E107 and E108 must connect pins 2 and 3 to use this port Note Required for communications to an RS 422 host port Note Required for communications to an RS 422 or RS 232 host port Note These lines are used for an advanced feature and normally should not be connected Page 32 4 0 Machine Connections Machine Connections Example 15 Volts Power Supply 20090 Amplifier Motor Encoder Load r
26. Page 182 9 0 Online Commands P constant expression Function Assign a value to a P variable Scope Global Syntax P constant constant expression where constant is an integer from 0 to 1023 representing the number of the P variable the optional second constant must be at least as great as the first constant it represents the number of the end of the range expression contains the value to be given to the specified P variable s Remarks This command causes PMAC to set the specified P variable or range of P variables equal to the value on the right side of the equals sign Examples P1 1 P75 P32 P10 P100 199 0 P10 2000 P832 SIN 3 14159 Q10 PASSWORD stringi Function Enter Set Program Password Scope Global Syntax PASSWORD string where string isa 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 Without a properly entered password PMAC will not open or list the contents of any motion program numbered 1000 or greater or of PLC programs 0 15 If asked to do so it will return an error ERR002 reported if 16 is set to 1 or 3 The default password is the null password which means no password is needed to list the programs This is how the card is shipped from the factory and also after
27. R ncremental Center Vector definition CIRCLE 1 Clockwise circle X20 YO 110 JO Arc move Start 0 0 End 20 0 C One of the functions of the calculator built in in the EZ PMAC Setup Software calculates the radius and center of a circular path given the coordinates of three points that belong to it Splined Moves PMAC can perform cubic splines cubic in terms of the position vs time equations to blend together a series of points on an axis Splining is particularly suited to odd non cartesian geometries such as radial tables and rotary axis robots where there are odd axis profile shapes even for regular tip movements In SPLINE1 mode a long move is split into equal time segments each of TA time Each axis is given a destination position in the motion program for each segment with a normal move command line like X1000Y2000 Looking at the move command before this and the move command after this PMAC creates a cubic position vs time curve for each axis so that there is no sudden change of either velocity or acceleration at the segment boundaries The commanded position at the segment boundary may be relaxed slightly to meet the velocity and acceleration constraints Page 72 6 0 Motion Programs PMAC can only work with integer millisecond values for the TA segment times If a non integer value is specified for the TA time PMAC will automatically round it to the nearest integer It will not report an error
28. Remarks This command empties the currently opened program PLC rotary etc buffer Typically as you create a buffer file in your host computer you will start with the OPEN buffer and CLEAR commands even though these lines are technically not part of the buffer and follow with your actual contents This will allow you to easily edit buffers from your host and repeatedly download the buffers erasing the old buffer s contents in the process Examples OPEN PROG 1 Open motion program buffer 1 CLEAR Clear out this buffer F1000 Program really starts here X2500 and ends on this line CLOSE This closes the program buffer OPEN PLC 3 CLEAR CLOSE This erases PLC 3 CLOSE Function Close the currently opened buffer Scope Global Syntax CLOSE CLS Remarks This closes the currently OPENed buffer This should be used immediate after the entry of a motion PLC rotary etc buffer If the buffer is left open subsequent statements that are intended as on line commands e g P120 will get entered into the buffer instead It is good practice to have CLOSE at the beginning and end of any file to be downloaded to PMAC When PMAC receives a CLOSE command it automatically appends a RETURN statement to the end of the open program buffer If any PROGRAM or PLC in PMAC is improperly structured e g no ENDIF or ENDWHILE to match an IF or WHILE PMAC will report an ERR003 at the CLOSE command for any buffer until the problem is fixed
29. card command before it responds to commands The card number in the command must match the card number set up in hardware on the card with jumpers or DIP switches I5 PLC Programs On Off Range 043 Default 0 Units none Remarks This parameter controls which PLC programs may be enabled There are two types of PLC programs the foreground program PLC 0 which operates at the end of servo interrupt calculations with a repetition rate determined by I8 PLC 0 should be used only for time critical tasks and should be short and the background programs PLC 1 to PLC 31 which cycle repeatedly in background as time allows I5 controls these as follows 0 Foreground PLC off background PLC off Foreground PLC on background PLC off Foreground PLC off background PLC on Foreground PLC on background PLC on Note that an individual PLC program still needs to be enabled to run a proper value of I5 merely permits it to be run Any PLC program that exists at power up or reset is automatically enabled even if the saved value of I5 does not permit it to run immediately also the ENABLE PLC n command enables the specified program s A PLC program is disabled either by the DISABLE PLC n command or by the OPEN PLC n command A CLOSE command does not automatically re enable the PLC program it must be done explicitly I6 Error Reporting Mode Range 0 3 Default 3 Units none Remarks This parameter reports how PMAC reports err
30. constant 0 To clear all of the axis definitions within a coordinate system address the coordinate system and use the UNDEFINE command To clear all axis definitions in a coordinate systems use UNDEFINE ALL For more sophisticated systems two or three cartesian axes may be defined as a linear combination of the same number of motors This allows coordinate system rotations and orthogonality corrections among other things One to three axes may be specified if only one it amounts to the simpler definition above All axes specified in one definition must be from the same triplet set of cartesian axes XYZ or UVW If this multi axis definition is used a command to move an axis will result in multiple motors moving Examples Hl1 5X User units counts 4 gt 2000 A 2000 counts user unit 8 gt 3333 333Z2 666 667 Non integers OK HB SY ER 2 motors may be assigned to the same axis 2 gt Y eee both motors move when a Y move is given 1 gt 8660X 5000Y This provides a 300 rotation of X and Y 2 gt 5000X 8660Y with 10000 cts unit this rotation does 3 gt 2000Z 6000 snot involve Z but it could have This example corrects for a Y axis 1 arc minute out of square 5 gt 100000X 3100000 cts in 6 gt 29 1X 100000Y sin and cos of 1 60 Function Reset motor Scope Motor specific Syntax Remarks This command causes PMAC to initialize the addressed motor performing any required commutation p
31. e EXP Note To implement the y function use e 9 instead A sample PMAC expression would be EXP P2 LN P1 to implement the function P1 SQRT This is the square root function ABS This is the absolute value function This is a truncation function which returns the greatest integer less than or equal to the argument INT 2 5 2 IST INT 2 5 3 Functions and operators could be used either in Motion Programs PLCs or as online commands For example the following commands could be typed in a terminal window P1 SIN 45 P1 Reports the sine value of a 45 angle T130 1130 2 Lower the proportional gain of Motor 1 by half 1125 1125 20000 Disable the end of travel limits of Motor 1 Page 43 5 0 Programming PMAC Comparators A comparator evaluates the relationship between two values constants or expressions It is used to determine the truth of a condition in a motion or PLC program The valid comparators for PMAC are equal to i not equal to gt greater than l gt not greater than less than or equal to lt less than l lt not less than greater than or equal to approximately equal to within one not approximately equal to at least one apart Note that lt and gt are not valid PMAC comparators The comparators gt and respectively should be used in their place I variables setup Before attempting to move any motor it is essential to setup th
32. increased so that no motor exceeds its maximum acceleration rate TS does not affect RAPID PVT or SPLINE mode moves but it stays valid for the next return to blended moves Make sure the specified acceleration time TA or 2 TS is greater than zero even if you are planning to rely on the maximum acceleration rate parameters Ix17 A specified acceleration time of zero will cause a divide by zero error The minimum specified time should be TA1 TSO In executing the TS command PMAC rounds the specified value to the nearest integer number of milliseconds there is no rounding done when storing the command in the buffer A blended move executed in a program before any TS statement will use the default S curve time specified by coordinate system I variable Ix88 Examples TS20 TS Q17 TS 39 32 P43 Page 243 10 Buffer Commands 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 This matrix can then be modified using the TINIT ADIS AROT IDIS and IROT commands to perform translations rotations and scaling ofthe 3 axes This matrix will be used until another one i
33. or systems EMI is usually due to magnetic fields originated by nearby high current cables or transformers Other sources of EMI include high voltage spikes generated by nearby solenoids relays and arc welding machines Twisted wires In order to reduce electromagnetic interference twisting of the power wires is highly recommended Two wires carrying high current originates an inductive loop that is proportional to the area in between them Page 20 3 0 Wiring Guidelines In a twisted cable each adjacent pair of areas eliminates the inductive effect Shielded cable In general is a good practice to shield all wires carrying low level signals This is especially important if the signal level wires are run near power level wiring such as motor wires or relays wires When shielding wires connect only one end of the shield preferably the source end Connecting both ends of a shield will result in ground loops It is recommended that the unconnected end of the shield will be insulated to prevent accidental connection Wires separation and length Since the electromagnetic interference drastically decreases with distance the best method to prevent EMI is to separate the power cables from the signal cables Also since the capacitance and inductive characteristics of a cable increases with the distance delicate signal cables must be kept short PMACs JMACH cable should not exceed the 36 inches in length whereas the PMACs JEXP cable sh
34. probably be much faster than intended If a motion program buffer is open when this command is sent to PMAC it will be entered into the buffer for later execution For instance in a Cartesian XYZ system if you use FRAX X Y all of your feedrate specified moves will be at the specified vector feedrate in the XY plane but not necessarily in XYZ space If you use FRAX X Y Z or FRAX your feedrate specified moves will be at the specified vector feedrate in XY Z space Default feedrate axes for a coordinate system are X Y and Z Examples FRAX Make all axes feedrate axes FRAX X Y Make X and Y axes only the feedrate axes FRAX X Y Z Make X Y and Z axes only the feedrate axes Page 158 9 0 Online Commands H Function Perform a feedhold Scope Coordinate system specific Syntax H Remarks This causes the currently addressed coordinate system to suspend execution of the program starting immediately by bringing its time base value to zero decelerating along its path at a rate defined by the coordinate system I variable Ix95 Technically the program is still executing after an H command but at zero speed This means that the motors defined in the coordinate system cannot be moved while performing the feed hold 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 T
35. return to trigger position 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 The A command will re establish closed loop control for all motors in the addressed coordinate system and the lt CTRL A gt command will do so for all motors on PMAC The action on a K command is equivalent to what PMAC does automatically to the motor on an amplifier fault or a fatal following error fault PMAC will reject this command if the motor is in a coordinate system that is currently running a motion program reporting ERRO001 ifI6 is 1 or 3 The program must be stopped first usually with an A command However the global lt CTRL K gt command will kill all motors immediately regardless of whether any are running motion programs Examples K Kill the addressed motor 1K Kill Motor 1 J Re establish closed loop control of Motor 1 LEARN Function Learn present commanded position Scope Coordinate system specific Syntax LEARN axis axis 1 LRN axis axis Remarks This command causes PMAC to add a line to the end of the open motion program buffer
36. starting point in its calculations Also with an absolute sensor a PMATCH command should be executed before the first programmed move so the starting axis position matches the non zero motor position If the PMATCH function is not performed PMAC will use the last axis destination position as the starting point for its upcoming axis move calculations which is not necessarily the same position as the current commanded motor positions The PMATCH function can be executed from within a motion program using CMD PMATCH with DWELLs both before and after This is useful if the coordinate system setup changes in the middle of the program e g new axis brought in or following mode changed If more than one motor is defined to a given axis as in a gantry system the commanded position of the lower numbered motor is used in the PMAC calculations If 114 is set to 1 the PMATCH function will be executed automatically every time program execution is started Most users will want to use 114 1 so they do not have to worry about when this needs to be done Example 10 Jog motor 1 10 Stop jogging PMATCH Match axis position to current motor position B200R Execute program 200 OPEN PROG 10 CLEAR CMD amp 1 4 gt 100C Bring C axis into coordinate system DWELL100 CMD PMATCH Issue PMATCH so C axis has proper start position DWELL100 c90 Q Function Quit Program at End of Move Scope Coordinate system specifi
37. when used on a card set up with the default servo cycle time of 442 usec provides a transition time between 100 and 0 feed hold of one second 1x96 Coordinate System x Circle Error Limit Range positive floating point Default 0 function disabled Units User length units Remarks In a circular arc move a move distance that is more than twice the specified radius will cause a computation error because a proper path cannot be found Sometimes due to round off errors a distance slightly larger than twice the radius is given for a half circle move and it is desired that this not create an error condition This parameter allows the user to set an error limit on the amount the move distance is greater than twice the radius If the move distance is greater than 2R but by less than this limit the move is done in a spiral fashion to the endpoint and no error condition is generated Ifthe distance error is greater than this limit a run time error will be generated and the program will stop If this variable is set to 0 the error generation is disabled and any move distance greater than 2R is done in a spiral fashion to the endpoint Example Given the program segment INC CIRCLE1 F2 X7 072 Y7 072 R5 technically no circular arc path can be found because the distance is SQRT 7 0722 7 0722 10 003 which is greater than twice the radius of 5 However as long as Ix96 is greater than 0 003 PMAC will create a near circular path to the e
38. 0 4095 0 Primary resolver turns per second resolver turns Backlash Hysteresis Motor definition I variables 0 8 388 607 Range 64 2 4 counts Default 1 16 Count Units Motor x Activate 0 1 1 for motor 1 none Motor x PMAC Commutate Enable 0 1 0 none Motor x DAC Address PMAC addresses see Ix02 table Extended legal PMAC X and Y addresses Motor x Position Address PMAC X addresses see encoder table Extended legal PMAC X addresses Motor x Velocity Address PMAC X addresses Same as Ix03 Legal PMAC X addresses Motor x Master Position Address PMAC X addresses 073F Legal PMAC X addresses Motor x Master Follow Enable 0 1 0 none Motor x Master Scale Factor 8 388 608 8 388 607 96 none Motor x Position Scale Factor 0 8 388 607 96 none Motor x Velocity Scale Factor 0 8 388 607 96 none Motor x Power on Servo Position Address Motor safety I variables PMAC addresses Range 0 Default Extended PMAC or multiplexer port addresses Units Motor x Fatal Following Error Limit 0 8 388 607 32000 1 16 Count Motor x Warning Following Error Limit 0 8 388 607 16000 1 16 Count Motor x Software Position Limit 247 0 Disabled Encoder Counts Motor x Software Position Limit 247 0 Disabled Encoder
39. 1 210000X also matches motor 1 to the X axis but this statement sets 10 000 encoder counts to one X axis user unit e g inches or centimeters Permitted Axis Names X Y Z U V W A B C X Y Z Traditionally Main Linear Axes A B C Traditionally Rotary Axes Matrix Axis Definition A rotates about X B about Y C about Z Matrix Axis Transformation Position Rollover Ix27 Circular Interpolation Cutter Radius Compensation U V W Traditionally Secondary Linear Axes Matrix Axis Definition Online Commands Many of the commands given to PMAC are on line commands that is they are executed immediately by PMAC either to cause some action change some variable or report some information back to the host Some commands such as P1 1 are executed immediately if there is no open program buffer but are stored in the buffer if one is open Other commands such as X000 Y1000 cannot be on line commands there must be an open buffer These commands will be rejected by PMAC reporting an ERROOS if I6 is set to 1 or 3 if there is no buffer open Still other commands such as J are on line commands only and cannot be entered into a program buffer unless in the form of CMD J for instance There are three basic classes of on line commands motor specific commands which affect only the motor that is currently addressed by the host coordinate system specific commands which affect only the coordinate system that is currently addresse
40. 24 1 filtered actual velocity 1 Ix09 32 cts servo cycle These registers contain the actual velocities averaged over the previous 80 real time interrupt periods 80 I8 1 servo cycles good for display purposes To read this register in cts msec P174 M174 8388608 I109 32 I10 I160 1 M175 gt D 0840 1 following error 1 Ix08 32 cts Following error is the difference between motor desired and measured position at any instant When the motor is open loop killed or enabled following error does not exist and PMAC reports a value of 0 M161 M162 M164 M169 M175 M167 1108 32 P176 To read this register in counts P176 M175 1108 32 Page 60 6 0 Motion Programs PMAC can hold up to 256 motion programs at one time Any coordinate system can run any of these programs at any time even if another coordinate system is already executing the same program PMAC can run as many motion programs simultaneously as there are coordinate systems defined on the card up to 8 A motion program can call any other motion program as a subprogram with or without arguments PMAC s motion program language is perhaps best described as a cross between a high level computer language like BASIC or Pascal and G Code RS 274 machine tool language In fact it can accept straight G Code programs directly provided it has been set up properly It has the calculational and logical constructs o
41. 32 cts The motor commanded position registers contain the value in counts where the motor is commanded to move It is set through JOG online commands or axis move commands X10 inside motion programs To read this register in counts P161 M161 1108 32 M162 gt D 002B 1 Actual position 1 Ix08 32 cts The actual position register contains the information read from the feedback sensor after it has been properly converted through the encoder conversion table and extended from a 24 bits register to a 48 bits register To read this register in counts P162 M162 1108 32 M163 gt D 080B 1 Target end position 1 Ix08 32 cts This register contains the most recent programmed position and it is called the target position register If 11320 PMAC is in segmentation mode and the value of M163 corresponds to the last interpolated point calculated To read this register in counts P163 M163 1108 32 M164 gt D 0813 1 Position bias 1 Ix08 32 cts This register contains the offset specified in the axis definition command 1 gt X offset The online command axis constant or the motion program command PSET adds the specified offset to the existing M164 offset M164 M164 new offset To read this register in counts P164 M164 1108 32 M165 gt L 081F amp 1 X axis target position engineering units M165 contains the programmed axis position through a motion program X10 for example in en
42. Can only home motors defined in the C S Can home any motor not defined in a C S running the program running a program Motors can be homed simultaneously one Motors can be homed in any order This after another or any combination of the two includes starting one motor in the middle of another motor s home move The motion program must be started by an The PLC can be started by an on line on line command a PLC program or another command a PLC program another motion motion program program or automatically at power up or reset Zero Move Homing If you wish to declare your current position the home position without commanding any movement you can use the HOMEZ on line or HOMEZn motion program command These are like the HOME command except that they immediately take the current commanded position as the home position The Ix26 offset is not used with the HOMEZ command Note If you have following error when you give the HOMEZ command the reported actual position after the HOMEZ command will not be exactly zero it will be equal to the negative of the following error Page 54 5 0 Programming PMAC Homing Into a Limit Switch Itis possible to use a limit switch as a home switch However you must first disable the limit function of the limit switch if you want the move to finish normally if you do not do this the limit function will abort the homing search move Even so the home position has b
43. Example M140 gt Y 0814 0 Motor 1 in position bit WHILE M140 0 WAIT Delay indefinitely until in position is true M1 1 Set output once in position Ix29 Motor x Output or First Phase DAC Bias Range 32 768 32 767 Default 0 Units DAC Bits Remarks This parameter is the digital equivalent of an offset potentiometer on the analog output It can be used to correct for differences in zero reference between PMAC s analog output and the amplifier s analog input This offset is active in both closed loop and open loop modes even when the motor is killed For a motor not commutated by PMAC Ix01 0 this is the value that is added onto the output of the servo algorithm or the open loop output value including the zero output when the motor is killed before it is sent to the DAC Page 110 6 0 I Variables If the analog output is unidirectional bit 16 of Ix02 is 1 this bias term is added before the absolute value function is performed It is used if there is a directional bias on the motor In this type of motor Ix79 offset after absolute value is used to control output deadband or dithering For a PMAC commutated motor Ix01 1 this is the value that is added onto the B phase output of the commutation algorithm This is the DAC with the lower address higher numbered i e DAC 2 ofa DAC 1 and DAC 2 pair of the adjacent DAC pair used for commutation Ix79 is added onto the other phase output higher addressed lowe
44. For multiple cards on a single serial daisy chain this command affects all cards on the chain regardless of the current software addressing For a flash memory PMAC that is in bootstrap mode powered up with E51 ON the lt CTRL R gt command puts PMAC into normal operational mode but with factory default I variables conversion table settings and VME DPRAM addresses Example amp 1B1 amp 2B500 lt CR gt lt CTRL R gt Page 128 9 0 Online Commands lt CONTROL S gt 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 witha B prog num command A program that is not running will execute all lines down to and including the next motion command move or dwell or if it encounters a BLOCKSTART command first all lines down to and including the next BLOCKSTOP command Ifa program is already running in continuous execution mode from an R run command an S command will put the program in single step mode stopping execution after the next motion command In this situation it has exactly the same effect as a Q quit command For multiple cards on a single serial daisy chain
45. Ix32 will usually be equal to or slightly greater than Ix31 to minimize tracking error If the motor is driving a tachometer loop velocity amplifier Ix32 will typically be substantially greater than Ix31 to minimize tracking error Ifthe servo update time is changed Ix32 must be changed proportionately in the opposite direction to keep the same effect For instance if the servo update time is cut in half from 440 usec to 220 usec Ix32 must be doubled to keep the same effect 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 Ix33 Motor x PID Integral Gain Range 0 8 388 607 Default 0 Units Ix30 Ix08 242 DAC bits counts cycles Page 112 6 0 I Variables Remarks This term adds an amount to the control output proportional to the time integral of the position error for motor x The magnitude of this integrated error is limited by Ix63 With Ix63 at a value of zero the contribution of the integrator to the output is zero regardless of the value of Ix33 No further errors are added to the integrator if the output saturates if output equals Ix69 and if Ix34 1 when a move is being commanded when desired velocity is not zero In both of these cases the contribution of the integrator to the output remains constant If the servo update time is changed Ix33 must be changed proportionately in the
46. M constant gt 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 Page 175 9 0 Online Commands Examples MlI 1 M9 M9 amp 20 M102 16384 M1 8 0 M constant gt Function Report current M variable definition s Scope Global Syntax M constant constant gt where constant is an integer from 0 to 1023 representing the number of the M variable the optional second constant must be at least as great as the first constant it represents the number of the end of the range Remarks This command causes PMAC to report the definition address of the specified M variable or range of M variables It does not cause PMAC to report the value of the M variable s that is done with the M constant command When I9 is 0 or 2 only the definition itself e g Y SFFC2 0 is returned When I9 is lor 3 the entire definition statement e g M11 gt Y SFFC2 0 is returned Examples M1 Host requests definition Y SFFC2 8 PMAC s response M101 103 X C001 24 8 Y C003 8 16 8 X C003 24 8 M constant gt Function Self Referenced M Variable Definition Scope Global Syntax M constant constant gt where constant is an integer from 0 to 1023 representing the number of the M variable the optional second constant must be at least as great as the first constant
47. M Variable Value Assignment Type Motion program Syntax M constant expression where constant is an integer constant from 0 to 1023 representing the number of the M variable expression is a mathematical expression representing the value to be assigned to this M variable Remarks This command allows the value of an M variable to be set synchronously with the start of the next move or dwell This is especially useful with M variables assigned to outputs so the output changes synchronously with beginning or end of the move Non synchronous calculations with the single are fully executed ahead of time during previous moves In this form the expression on the right side is evaluated just as for a non synchronous assignment but the resulting value is not assigned to the specified M variable until the start of the actual execution of the following motion command 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 Examples X10 M1 Set Output 1 at start of actual blending to next move X20 M60 P1 P2 M constant amp expression Function M Variable And Equals Assignment Type Motion program PROG and ROT Syntax M constant amp expression where constant is an integer constant from 0 to 1023 representing the number of the M variable expression isa mathematical expression
48. M variable may be specified with either a constant or an expression M576 or M P1 20 when read from the number must be specified by a constant when written to The definition of an M variable is done using the defines arrow gt composed of the minus sign and greater than symbols An M variable may take one of the following types as specified by the address prefix in the definition 1 to 24 bits fixed point in X memory 1 to 24 bits fixed point in Y memory 48 bits fixed point across both X and Y memory 48 bits floating point across both X and Y memory No address definition uses part of the definition word as general purpose variable E U H SM If an X or Y type of M variable is defined you must also define the starting bit to use the number of bits and the format decoding method Typical M variable definition statements are M1 gt Y SFFC2 8 1 M102 gt Y 49155 8 16 5S M103 gt X C003 0 24 S M161 gt D 002B M191 gt L 0822 The M variable definitions are stored as 24 bit codes at PMAC addresses Y BC00 for MO to Y BFFF for M1023 For all but the thumbwheel multiplexer port M variables the low 16 bits of this code contains the address of the register pointed to by the M variable the high 8 bits tell what part of the address is used and how it is interpreted X Y Format Address 0000 0 0 0 0 0 0 Specified by FFFF assignment PMAC s memory If another M variable po
49. RETURN RET Page 236 10 Buffer Commands Remarks The RETURN command tells the motion program to jump back to the routine that called the execution of this routine If this routine was started from an on line command Run program execution stops and the program pointer is reset to the top of this motion program control is returned to the PMAC operating system Ifthis routine was started from a GOSUB CALL G M T or D command in a motion program program execution jumps back to the command immediately following the calling command When the CLOSE command is sent to end the entry into a motion program buffer PMAC automatically appends a RETURN command to the end of that program When the OPEN command is sent to an existing motion program buffer the final RETURN command is automatically removed Examples OPEN PROG 1 CLEAR X20 F10 XO CLOSE PMAC places a RETURN here OPEN PROG 1000 CLEAR NO RAPID RETURN Execution jumps back after one line routine N1000 LINEAR RETURN Ditto N2000 CIRCLE1 RETURN Ditto CLOSE PMAC places a RETURN here SEND Function Cause PMAC to Send Message Type Motion program PROG and ROT PLC program Syntax SEND message SENDS nessage SENDP nessage Remarks This command causes PMAC to send the specified message out of one of PMAC s communications ports This is particularly useful in the debugging of applications It can also be used to prompt an operator or t
50. STD bus ISA VME PMACI firmware can support both busses Backup type BATTERY Battery backed RAM FLASH AMD style flash backed RAM I FLASH Intel style flash backed RAM Servo type PID Standard PID servo algorithm ESA Option 6 Extended servo algorithm Ladder typej blank no ladder logic diagram support LDs Ladder logic diagram support Clock multiplier CLK Xnwhere nis the multiplication of crystal frequency to CPU frequency Examples TYPE PMAC1 ISA VME BATTERY PID CLK X1 TYPE PMAC2 ISA FLASH ESA CLK X3 TYPE PMACUL VME FLASH PID LDs CLK X2 UNDEFINE Function Erase Coordinate System Definition Scope Coordinate system specific Syntax UNDEFINE UNDEF Remarks This command causes PMAC to erase all of the axis definition statements in the addressed coordinate system It does not affect the axis definition statements in any other coordinate systems It can be useful to use before making new axis definitions To erase the axis definition statement of a single motor only use the constant 0 command to erase all the axis definition statements in every coordinate system use the UNDEFINE ALL command Examples amp 1 Address C S 1 Page 192 9 0 Online Commands 41 2 Ask for axis definition of Motor 1 10000X PMAC responds 2 gt Ask for axis definition of Motor 2 10000Y PMAC responds UNDEF INE Erase axis definitions amp 2 Address C S 2 1 gt 10000X _ Redefine Mo
51. TS or Ix88 is greater than half the TA time the time used for the acceleration for blended moves will be twice the specified S curve time The acceleration time is also the minimum time for a blended move if the distance on a feedrate specified F move is so short that the calculated move time is less than the acceleration time or the time of a time specified TM move is less than the acceleration time the move will be done in the acceleration time instead This will slow down the move If TA controls the move time it must be greater than the 113 time and the I8 period The acceleration time will be extended automatically when any motor in the coordinate system 1s asked to exceed its maximum acceleration rate Ix17 for a programmed LINEAR mode move with I13 0 no move segmentation A move executed in a program before any TA statement will use the default acceleration time specified by coordinate system I variable Ix87 Page 241 10 Buffer Commands In executing the TA command PMAC rounds the specified value to the nearest integer number of milliseconds there is no rounding done when storing the command in the buffer Examples TA100 TA P20 TA 45 3 SQRT Q10 TINIT Function Initialize selected transformation matrix Type Motion program PROG and ROT Syntax TINIT Remarks This command initializes the currently selected with TSEL transformation matrix for the coordinate system by setting it to the iden
52. X U A B C Axis scale factor cts unit M191 gt L 0822 M291 gt L 08E2 M391 gt L 09A2 M491 gt L 0A62 M591 gt L 0B22 M691 gt L 0BE2 M791 gt L 0CA2 M891 gt L 0D62 Y V Axis scale factor cts unit M192 gt L 0823 M292 gt L 08E3 M392 gt L 09A3 M492 gt L 0A63 M592 gt L 0B23 M692 gt L 0BE3 M792 gt L 0CA3 M892 gt L 0D63 Z W Axis scale factor cts unit M193 gt L 0824 M293 gt L 08E4 M393 gt L 09A4 M493 gt L 0A64 M593 gt L 0B24 M693 gt L 0BE4 M793 gt L 0CA4 M893 gt L 0D64 Axis offset cts M194 gt L 0825 M294 gt L 08E5 M394 gt L 09A5 M494 gt L 0A65 M594 gt L 0B25 M694 gt L 0BES M794 gt L 0CA5 M894 gt L 0D65 Coordinate System Variables Coordinate System 1 Coordinate System 2 Coordinate System 3 Coordinate System 4 Coordinate System 5 Coordinate System 6 Coordinate System 7 Coordinate System 8 Host commanded time base 110 units M197 gt X 0806 0 24 S M297 gt X 08C6 0 24 S M397 gt X 0986 0 24 S M497 gt X 0A46 0 24 S M597 gt X 0B06 0 24 S M697 gt X 0BC6 0 24 S M797 gt X 0C86 0 24 S M897 gt X 0D46 0 24 S Present time base 110 units M198 gt X 0808 0 24 S M298 gt X 08C8 0 24 S M398 gt X 0988 0 24 S M498 gt X 0A48 0 24 S M598 gt X 0B08 0 24 S M698 gt X 0BC8 0 24 S
53. Y 0D54 1 1 Fatal following error bit M142 gt Y 0814 2 1 M242 gt Y 08D4 2 1 M342 gt Y 0994 2 1 M442 gt Y 0A54 2 1 M542 gt Y 0B14 2 1 M642 gt Y 0BD4 2 1 M742 gt Y 0C94 2 1 M842 gt Y 0D54 2 1 Amplifier fault error bit M143 gt Y 0814 3 1 M243 gt Y 08D4 3 1 M343 gt Y 0994 3 1 M443 gt Y 0A54 3 1 M543 gt Y 0B14 3 1 M643 gt Y 0BD4 3 1 M743 gt Y 0C94 3 1 M843 gt Y 0D54 3 1 Home complete bit M145 gt Y 0814 10 1 M245 gt Y 08D4 10 1 M345 gt Y 0994 10 1 M445 gt Y 0A54 10 1 M545 gt Y 0B14 10 1 M645 gt Y 0BD4 10 1 M745 gt Y 0C94 10 1 M845 gt Y 0D54 10 1 Motor Move Registers Motor 1 Motor 2 Motor 3 Motor 4 Motor 5 Motor 6 Motor 7 Motor 8 Commanded position 1 x08 32 cts M161 gt D 0028 M261 gt D 0064 M361 gt D 00A0 M461 gt D 00DC M561 gt D 0118 M661 gt D 0154 M761 gt D 0190 M861 gt D 01CC Actual position 1 Ix08 32 cts M162 gt D 002B M262 gt D 0067 M362 gt D 00A3 M462 gt D 00DF M562 gt D 011B M662 gt D 0157 M762 gt D 0193 M862 gt D 01CF Target end position 1 Ix08 32 M163 gt D 080B M263 gt D 08CB M363 gt D 098B M463 gt D 0A4B M563 gt D 0B0B M663 gt D 0BCB M763 gt D 0C8B M863 gt D 0D4B Position bias 1 Ix08 32 cts M164 gt D 0813 M264 gt D 08D3 M364 gt D 0993 M464 gt D 0A53 M564 gt D 0B13 M664 gt D 0BD3 M764 gt D 0C93 M864 gt D 0D53 X
54. a re initialization command When there is a null password you are automatically considered to have entered the correct password on power up reset If you have entered the correct password which is always the case for the null password PMAC interprets the PASSWORD string command as changing the password and you can change it to anything you want When the password is changed it has automatically been matched and the host computer has access to the protected programs Note The password does not require quote marks If you use quote marks when you enter the password string for the first time you must use them every time you match this password string Page 183 9 0 Online Commands If you have not yet entered the correct password since the latest power up reset PMAC interprets the PASSWORD string command as an attempt to match the existing password If the command matches the existing password correctly PMAC accepts it as a valid command and the host computer has access to the protected programs until the PMAC is reset or has its power cycled If the command does not match the existing password correctly PMAC returns an error reporting ERROO2 if 16 1 or 3 and the host computer does not have access to the protected programs The host computer is free to attempt to match the existing password There is no way to read the current password If the password is forgotten and access to the protected programs is required t
55. a feed hold A feed hold is much like a 0 command where the coordinate system is brought to a stop without deviating from the path it was following even around curves However with a feed hold the coordinate system slows down at a slew rate determined by Ix95 and can be started up again with an R run command The system then speeds up at the rate determined by 1x95 until it reaches the desired value from internal or external timebase From then on any timebase changes occur at a rate determined by Ix94 For multiple cards on a single serial daisy chain this command affects all cards on the chain regardless of the current software addressing On a flash memory PMAC that is in bootstrap mode powered up with E51 ON the lt CTRL O gt command puts PMAC into its firmware reload command All subsequent characters sent to PMAC are interpreted as bytes of machine code for PMAC s operational firmware overwriting the existing operational firmware in flash memory lt CONTROL P gt Function Report positions of all motors Scope Global Syntax ASCII Value 16D 10 Remarks This command causes the positions of all motors to be reported to the host The positions are reported as an ASCII string scaled in counts rounded to the nearest tenth of a count with a space character in between each motor s position The position window in the PMAC Executive program works by repeatedly sending the lt CTRL P gt command and rearranging the r
56. a set of different parameters However these parameters have the same meaning as those described above Move type S Curve acceleration parameter Linear acceleration parameter Jog or Home commands Ix21 Ix20 Linear or circular interpolation TA or Ix87 TS or Ix88 Page 45 5 0 Programming PMAC Rate vs Time programming the maximum acceleration parameters The safety I variables Ix17 and Ix19 determine the maximum allowed acceleration for the motor x These variables are programmed in the resulting rate of encoder counts per millisecond square However the acceleration of a programmed move either from jog commands or motion programs is set in milliseconds as described above The following relationship holds for the conversion between those parameters Velocity Acceleration Rate Linear Acceleration Time S Curve Acceleration Time Examples Jog Commands Linearly Interpolated Moves Ix22 Ix16 Ix192 Ix172 Ix20 Ix21 Ix87 Ix88 Benefits of using S curve acceleration profiles In an electric motor the acceleration directly translates into torque and electrical current When no S curve component is programmed the acceleration torque and current are suddenly applied to the motor all at once as soon as it starts moving With a programmed S curve profile on the other hand the acceleration is linearly introduced resulting in a smoother transition in torque
57. ahead of what has been calculated The PR command may be used to find the current number of program lines ahead of what has been calculated Ninth character returned Bit 15 Bit 14 Bit 13 Bit 12 Delayed Calculation Flag for internal use End of Block 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 Circular mode with 113 gt 0 Synchronous M variable One Shot for internal use Dwell Move Buffered for internal use Tenth character returned Bit 11 Bit 10 Bit 9 Bit 8 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 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 Cutter Comp Move Buffered This bit is 1 when the coordinate system is executing moves with cutter compensation enabled and the next move has been calculated and buffered This is primarily for internal use Pre jog Move Flag This bit is 1 when any motor in the coordinate system is executing a jog move to pre jog position J command It is 0 otherwise Eleventh character returned Bit 7 Segmented Move in Progress This bit is 1 when the coordinate syste
58. and current However the acceleration rate in a pure S curve acceleration profile is two times that necessary for a pure linear acceleration profile see equation above This requires in some cases a longer acceleration time when using S curve acceleration S curve component no S curve component Velocity vs Time Acceleration vs Time Force Torque vs Time Current vs Time Motor movement I variables Ix20 Motor x Jog Home Acceleration Time this variable determines how long the acceleration portion of the jog moves will take regardless if a S curve components is also programmed or not see diagram above Ix21 Motor x Jog Home S Curve Time this variable determines the portion of the acceleration ramp that will be performed in S curve mode If Ix20 is set to zero then the acceleration ramp will take 2 Ix21 and will be executed in pure S curve mode Page 46 5 0 Programming PMAC Ix22 Motor x Jog Speed this variable sets the jog velocity If the motor x is already moving a new jog command must be issued for the Ix22 parameter to have effect Ix23 Motor x Homing Speed amp Direction this variable is often set with the same value as Ix22 However what is important in this case is its sign which determines in which direction PMAC will take when searching for the home sensor Ix25 Motor x Flag Address this variable determines how the flags related to motor x will be used Th
59. and fractional digits the third constant is an integer from 0 to 9 and at least two less than the second constant representing the number of fractional digits to be displayed variable is the name of the variable to be displayed Remarks This command causes PMAC to send a formatted string containing the value of the specified variable to the display port The value of any I P Q or M variable may be displayed with this command The first 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 The second constant specifies the number of characters to be used in displaying the value it has a range of 2 to 16 The third constant specifies the number of places to the right of the decimal point it has a range of 0 to 9 and must be at least 2 less than the number of characters The last thing specified in the statement is the name of the variable I P Q or M Examples DISPLAY 0 8 0 P50 DISPLAY 24 2 0 M1 DISPLAY 40 12 4 Q100 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 Page 212 10 Buffer Commands Remarks This command causes the card to keep the commanded positions of all axes in the coordinat
60. as far as disturbing the scheduling of tasks is concerned If it is too long it will starve the background tasks for time The first thing you will notice is that communications and background PLC tasks will become sluggish In the worst case the watchdog timer will trip shutting down the card because the housekeeping task in background did not have the time to keep it updated Because all PLC programs in PMAC s memory are enabled at power on reset it is good practice to have I5 saved as 0 in PMAC s memory when developing PLC programs This will allow you to reset PMAC and have no PLC s running an enabled PLC only runs if I5 is set properly and more easily recover from a PLC programming error Asan example type these commands in the terminal window After that open a watch window and monitor for P1 to be counting up OPEN PLC1 CLEAR Prepare buffer to be written P1 P1 1 Pl continuously incrementing CLOSE Close written buffer PLC1 I5 2 Press lt CTRL D gt andtype ENA PLC1 Page 87 6 0 Troubleshooting Section Page 88 9 0 I Variables 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 There are 1024 I variables from IO to 11023 and they are organized as follows
61. 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 The seventh character represents Bits 20 23 of the second word the twelfth character represents Bits 0 3 of the second word A bit has a value of 1 when the condition is true 0 when false The meaning of the individual status bits is FIRST WORD RETURNED X 0003 First character returned Bit23 Real Time Interrupt Active This bit is 1 if PMAC is currently executing a real time interrupt task PLC 0 or motion program move planning It is 0 if PMAC is executing some other task Note Communications can only happen outside of the real time interrupt so polling this bit will always return a value of 0 This bit is for internal use Bit22 Real Time Interrupt Re entry This bit is 1 if a real time interrupt task has 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 Bit21 Servo Active This bit is 1 if PMAC is currently executing servo update operations It is 0 if PMAC is executing other operations Note that communications can
62. containing axis position Page 170 9 0 Online Commands commands equal to the current commanded positions for some or all of the motors defined in the addressed coordinate system In this way PMAC can learn a sequence of points to be repeated by subsequent execution of the motion program PMAC effectively performs a PMATCH function reading motor commanded positions and inverting the axis definition equations to compute axis positions If axis names are specified in the LEARN command only position commands for those axes are used in the line added to the motion program Ifno axis names are specified in the learn command position commands for all nine possible axis names are used in the line added to the motion program The position command for an axis with no motor attached phantom axis will be zero 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 Examples amp 1 Address coordinate system 1 1 gt 10000xX Define motor 1 in C S 1 2 gt 10000Y Define motor 2 in C S 1 OPEN PROG 1 CLEAR Prepare program buffer for entry F10 TA200 TS50 Enter required non move commands move motors to a position e g 1 to 1
63. converted data of the table Hardware Home Position Capture The source address of the position information occupies bits 0 to 15 of Ix03 range 0000 to FFFF or 0 to 65535 With bit 16 equal to zero the normal case position capture on homing is done with the hardware capture register associated with the flag inputs pointed to by Ix25 In this case it is important to match the encoder number the address pointed to with Ix03 with the flag number the address pointed to with Ix03 e g ENCI CHAI amp CHBI with HMFL1 and LIMI Software Home Position Capture If bit 16 value 65536 is set to one the position capture on homing is done through software and the position source does not have to match the input flag source This is particularly important for parallel data position feedback such as from a laser interferometer which is incremental data and requires homing For example if motor 1 used parallel feedback from a laser interferometer processed as the first triple entry in the conversion table the key I variables would be 1103 10722 1125 C000 This would permit homing on interferometer data with HMFL 1 triggering 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 t
64. cycle s In this operation the present commanded position of the motor is made the zero position for the motor and the new commanded position for the motor If there is following error and or an axis definition offset at the time of the HOMEZ command the reported position after the command will be equal to the negative of the following error plus the axis definition offset Note that the motors must be specified directly by number not the matching axis letters You must specify which motors are to be homed All motors specified in a single HOMEZ command e g HOMEZ1 2 will home simultaneously Unlike an on line homing command the motor number s in a program homing command is are specified after the word HOMEZ itself not before Examples HOMEZI These are motion program commands HMZ1 2 3 HOMEZI 3 5 7 HMZI 8 1 HOMEZ These are on line commands 1HMZ 4 2HMZ 43HMZ Page 220 10 Buffer Commands 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 Remarks In circular moves this specifies the component of the vector to the arc center that is parallel to the X axis The starting point of the vector is either the move start point for INC R mode default or the XY Z origin for ABS
65. deceleration to a stop controlled by Ix15 and allows no further negative position increments or negative output commands as long as the limit is exceeded If this value is set to zero there is no negative software limit if you want 0 as a limit use 1 This limit is automatically de activated during homing search moves until the trigger is found It is active during the post trigger move Starting in firmware 1 15 bit 17 of x25 does not de activate the software limits Permanent de activation is done by setting the value of the software limit to zero This limit is referenced to the most recent power up zero position or homing move zero position The physical position at which this limit occurs is not affected by axis offset commands e g PSET X although these commands will change the reported position value at which the limit occurs Ix15 Motor x Deceleration Rate on Position Limit or Abort Range positive floating point Default 0 25 Units Counts msec2 Remarks This parameter 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 lt CONTROL A gt This value should usually be set to a value near the maximum physical capability of the motor It is not a good idea to set this value past the capability of the motor because doing so increases the likelihood of exceeding the following error limit which stops the braking action and could allow the
66. decimal or hexadecimal specifying the value to be written to the specified address further constants specify integer values to be written into subsequent consecutive higher addresses Remarks This command causes PMAC to write the specified constant value to the specified memory word address or if a series of constant values is specified to write them to consecutive memory locations starting at the specified address it is essentially a memory POKE command The command can specify either short 24 bit word s in PMAC s X memory short 24 bit word s in PMAC s Y memory or long 48 bit words covering both X and Y memory X word more significant This choice is controlled by the use of the X Y or L address prefix in the command respectively Examples WY C002 4194304 Thisshould put SV on DAC2 provided I200 0 so servo does not overwrite WY 720 00C000 00C004 00C008 00C00C This writes the first four entries to the encoder conversion table Page 194 9 0 Online Commands Z Function Make commanded axis positions zero Scope Coordinate system specific Syntax Z Remarks This command causes PMAC to re label the current commanded axis positions for all axes in the coordinate system as zero It does not cause any movement it merely re names the current position This command is simply a short way of executing axis 0 for all axes in the coordinate system PSET X0 YO etc is the equivalent motion prog
67. definite jog command the jog move can be interrupted by a pre defined 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 Jog until trigger moves are very similar to homing search moves except they have a definite end position in the absence ofa trigger and they do not change the motor zero position The jog until trigger function can be used with any jog command whether the basic jog command is definite or indefinite If the basic jog command is definite e g 7210000 in the absence of a trigger the move will simply stop at the pre defined position If the basic jog command is indefinite e g J in the absence of a trigger the motor will keep moving until stopped by another command or error condition The trigger condition for a jog until trigger move can either be an input flag or a warning following error condition for the motor If bit 17 of Ix03 is 0 the default the trigger is a transition of an input flag and or encoder index channel from the set defined for the motor by Ix25 Encoder flag variables 2 and 3 e g 1912 and 1913 define which edges of which input signals create the trigger If bit 17 of Ix03 is 1 the trigger is the warning following error status bit of the motor becoming true Ix12 for the motor sets the error threshold for this condition The
68. different types of on board backup memory either battery based type or flash type Each axis is controller by an independent channel circuitry which in turn is composed of the following features A single differential 16 bits DAC output Amplifier enable output One quadrature incremental encoder input Four dedicated flag inputs two end of travel limits one home input and one amplifier fault input The Univeral PMAC Lite can be programmed to control the motion of up to four motors in any coordinated fashion either independently of each other or coordinated with for example linear or circular interpolation The Univeral PMAC Lite is not only a very sophisticated motion controller but it is also a PLC Programmable Logic Controller device PLC programs in PMAC run conveniently independently of each other and of motion programs and can be very tightly synchronized to the motion sequence Page 1 1 0 Introduction The Univeral PMAC Lite can be installed inside a computer on an ISA bus type and be programmed through bus communications Alternatively it can be installed in a stand alone configuration outside the computer and programmed using serial communications Either RS 232 or RS 422 serial communications are supported PMAC has its own on board memory Programs and motion parameters can be kept in memory without the need to re program each time PMAC is power up Standard Features for a typical application Motorola DSP 5
69. executes one scan to the end or to an ENDWHILE statement uninterrupted by any other background task although it can be interrupted by higher priority tasks In between each PLC program PMAC will do its general housekeeping and respond to a host command if any At power on reset PLCC programs run after the first PLC program runs These are the suggested uses of all the available PLC buffers PLC0 PLC program 0 is a special fast program that operates at the end of the servo interrupt cycle with a frequency specified by variable I8 every I8 1 servo cycles This program is meant for a few time critical tasks and it should be kept small because its rapid repetition can steal time from other tasks A PLC 0 that is too large can cause unpredictable behavior and can even trip PMAC s Watchdog Timer by starving background tasks of time to execute PLCI This is the first code that PMAC will run on power up assuming that I5 was saved with a value of 2 or 3 This makes PLCI the appropriate PLC to initialize parameters perform commutated motors phase search and run motion programs PLCIcould also disable other PLCs before they start running and could disable itself at the end of its execution PLC2 Since PLClis suggested as an initialization PLC and could potentially run only once on power up PLC2 is the first PLC in the remaining sequence from 2 to 31 This makes PLC2 the ideal place to copy digital input information from DO expansion
70. fatal following error limit Ix11 for the motor Bit 2270 Bit 21 0 Kill all PMAC motors Bit 22 0 Bit 21 1 Kill all motors in same coordinate system Bit 2221 Bit 21 0 Kill only this motor Bit 2271 Bit 21 1 Kill only this motor Regardless of the setting of these bits a program running in the coordinate system of the offending motor will be halted on an amplifier fault or the exceeding of a fatal following error limit Amplifier Fault Polarity Bit Bit 23 value 8 388 608 of Ix25 controls the polarity of the amplifier fault input A zero in this bit means a low true input low means fault a one means high true high means fault The input is pulled high internally so if no line is attached to the input and bit 20 of Ix25 is zero enabling the fault function bit 23 of Ix25 must be zero to permit operation of the motor First Hex Digit In the hexadecimal form bits 20 to 23 combine to form a single hexadecimal digit 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 2 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 4 Low true amp fault enabled only this motor killed on fault or excess following error
71. for this purpose If you are not using a direction and magnitude amplifier or voltage to frequency converter you can use this pin to enable and disable your amplifier wired to the enable line AENATI DIRI is pin 47 Jumpers E17A through E17D control the polarity of this signal and the default is conducting enable JMACH1 47 AENA1 To the amplifier 58 AGND enable signal The amplifier enable signals are controlled by chip U54 If jumper E100 connects pins 1 and 2 U54 will be supplied from the analog A 15V supply which can be isolated from the digital circuitry If E100 connects pins 2 and 3 U54 will be supplied from a separate A V supply brought in on pin 9 of the J8 JEQU connector This supply can be in the 12V to 24V range and can be kept isolated from both the digital and analog circuitry This also allows 24 Volts operation of this signal By default the PMAC Lite is provided with a sinking output driver IC ULN2803A or equivalent in U54 In this configuration jumpers E101 and E102 must connect pins 1 and 2 to supply the IC correctly If this IC is replaced with a sourcing output driver IC UDN2981A or equivalent E101 and E102 must be changed to connect pins 2 and 3 to supply the new IC correctly A wrong setting of these jumpers will damage the associated output IC For any other kind of amplifier enable signal like a 5 Volts signal a dry contact of a relay or a solid state relay could be used Page 26
72. full conditions on its line and the program line immediately above It takes lower precedence than AND or OR operators within a compound condition on a single line the parentheses cause those to be executed first but it takes higher precedence than an OR operator that starts a line In motion programs there can be compound conditions within one program line but not across multiple program lines so this statement is not permitted in motion programs This logical AND command which acts on condition should not be confused with the bit by bit amp ampersand operator that acts on values Examples IF M11 1 _ This branch will start a motion program running AND M12 1 onacycle where inputs M11 and M12 are 1 and AND M21 0 M21 isstill zero Note that M21 is immediately CMD R set to one so the run command will not be given M21 1 again in the next cycle ENDIF AROT constant Function Absolute rotation scaling of X Y and Z axes Type Motion program PROG and ROT Syntax AROT constant where constant is an integer representing the number ofthe first of nine consecutive Q variables to be used in the rotation scaling matrix 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
73. gt X 00B5 22 1 M432 gt X 00F1 22 1 M532 gt X 012D 22 1 M632 gt X 0169 22 1 M732 gt X 01A5 22 1 M832 X 01E1 22 1 Desired velocity zero bit M133 gt X 003D 13 1 M233 gt X 0079 13 1 M333 gt X 00B5 13 1 M433 gt X 00F1 13 1 M533 gt X 012D 13 1 M633 gt X 0169 13 1 M733 gt X 01A5 13 1 M833 gt X 01E1 13 1 Dwell in progress bit M135 gt X 003D 15 1 M235 gt X 0079 15 1 M335 gt X 00B5 15 1 M435 gt X 00F1 15 1 M535 gt X 012D 15 1 M635 gt X 0169 15 1 M735 gt X 01A5 15 1 M835 gt X 01E1 15 1 Running program bit M137 gt X 003D 17 1 M237 gt X 0079 17 1 M337 gt X 00B5 17 1 M437 gt X 00F1 17 1 M537 gt X 012D 17 1 M637 gt X 0169 17 1 M737 gt X 01A5 17 1 M837 gt X 01E1 17 1 Open loop mode bit M138 gt X 003D 18 1 M238 gt X 0079 18 1 M338 gt X 00B5 18 1 M438 gt X 00F1 18 1 M538 gt X 012D 18 1 M638 gt X 0169 18 1 M738 gt X 01A5 18 1 M838 gt X 01E1 18 1 Amplifier enabled status bit M139 gt Y 0814 14 1 M239 gt Y 08D4 14 1 M339 gt Y 0994 14 1 M439 gt Y 0A54 14 1 M539 gt Y 0B14 14 1 M639 gt Y 0BD4 14 1 M739 gt Y 0C94 14 1 M839 gt Y 0D54 14 1 In position bit M140 gt Y 0814 0 1 M240 gt Y 08D4 0 1 M340 gt Y 0994 0 1 M440 gt Y 0A54 0 1 M540 gt Y 0B14 0 1 M640 gt Y 0BD4 0 1 M740 gt Y 0C94 0 1 M840 gt Y 0D54 0 1 Warning following error bit M141 gt Y 0814 1 1 M241 gt Y 08D4 1 1 M341 gt Y 0994 1 1 M441 gt Y 0A54 1 1 M541 gt Y 0B14 1 1 M641 gt Y 0BD4 1 1 M741 gt Y 0C94 1 1 M841 gt
74. gt X 01E5 0 24 S Variable jog position distance counts M172 gt L 082B M272 gt L 08EB M372 gt L 09AB M472 gt L 0A6B M572 gt L 0B2B M672 gt L 0BEB M772 gt L 0CAB M872 gt L 0D6B Encoder home capture offset counts M173 gt Y 0815 0 24 S M273 gt Y 08D5 0 24 S M373 gt Y 0995 0 24 S M473 gt Y 0A55 0 24 S M573 gt Y 0B15 0 24 S M673 gt Y 0BD5 0 24 S M773 gt Y 0C95 0 24 S M873 gt Y 0D55 0 24 S filtered actual vel 1 Ix09 32 cts servo cycle M174 gt Y 082A 0 24 S M274 gt Y 08EA 0 24 S M374 gt Y 09AA 0 24 S M474 gt Y 0A6A 0 24 S M574 gt Y 0B2A 0 24 S M674 gt Y 0BEA 0 24 S M774 gt Y 0CAA 0 24 S M874 gt Y 0D6A 0 24 S Motor 1 following error 1 Ix08 32 cts M175 gt D 0840 M275 gt D 0900 M375 gt D 09CO M475 gt D 0A80 M575 D 0B40 M675 gt D 0C00 M775 gt D 0CCO M875 gt D 0D80 Coordinate System Status Bits Coordinate System 1 Coordinate System 2 Coordinate System 3 Coordinate System 4 Coordinate System 5 Coordinate System 6 Coordinate System 7 Coordinate System 8 Program running bit M180 gt X 0818 0 1 M280 gt X 08D8 0 1 M380 gt X 0998 0 1 M480 gt X 0A58 0 1 M580 gt X 0B18 0 1 M680 gt X 0BD8 0 1 M780 gt X 0C98 0 1 M880 gt X 0D58 0 1 Circle radius error bit M181 gt Y 0817 21 1 M281 gt Y 08D7 21 1 M381 gt Y 09
75. in the on online command will run the motion programs slower increasing the chances of success of execution For example in the terminal window type amp 1 75 B1R Ifa program run successfully at lower feedrate override values there could be mainly two reasons why it fails at 100 either there is insufficient calculation time for the programmed moves or the acceleration and or velocity parameters involved are unsuitable for the machine into consideration Look for further details in the section entitled PMAC Tasks Page 86 6 0 Troubleshooting Section PLC programs PLCs and PLCCs are one of the most common sources for communication or watchdog timer failures Any SEND COMMAND or DISPLAY action statement should be done only on an edge triggered condition because the PLC can cycle faster than these operations can process their information and the communications channels can get overwhelmed if these statements get executed on consecutive scans through the PLC IF M11 1 Input is ON IF P1120 input was not ON last time COMMAND 1J JOG motor P11 1 set latch ENDIF ELSE P11 0 reset latch ENDIF PLC0 or PLCCO are meant to be used for only a very few tasks usually a single task that must be done at a higher frequency than the other PLC tasks The PLC 0 will execute every real time interrupt as long as the tasks from the previous RTI have been completed PLC 0 is potentially the most dangerous task on PMAC
76. is 0 the BELL character is given for invalid commands issued both from the host and from PMAC programs using CMD command When I6 is 2 the BELL character is given only for invalid commands from the host there is no response to invalid commands issued from PMAC programs In no mode is there a response to valid commands issued from PMAC programs When 16 is set to 1 or 3 an error number message can be reported along with the BELL character The message comes in the form of ERRnnn lt CR gt where nnn represents the three digit error number If I3 is set to 1 or 3 there is a LE character in front of the message When 16 is set to 1 the form of the error message is BELL error message This setting is the best for interfacing with host computer driver routines When I6 is set to 3 the form of the error message is BELL CR error message This setting is appropriate for use with the PMAC Executive Program in terminal mode Currently the following error messages can be reported ERROO1 Command not allowed during should halt program execution before program execution issuing command should enter the proper password ERROOS3 Data error or unrecognized should correct syntax of command command ERROO4 Illegal character bad value 2127 should correct the character and or ASCID or serial parity framing check for noise on the serial cable error ERROO5 Command not allowed unless should open a buffer fir
77. is 1 if a firmware checkum error has been detected in PMAC s memory It is 0 if a user program checksum error has been detected or if no memory checksum error has been detected Bit 13 distinguishes between these two cases Fourth character returned Bitll DPRAM Error This bit is 1 if PMAC has detected an error in DPRAM communications It is 0 otherwise Bit10 EAROM Error This bit is 1 if PMAC detected a checksum error in reading saved data from the EAROM in which case it replaces this with factory defaults It is 0 otherwise Bits 8 9 for internal use fifth character returned Bit 7 for internal use Bit6 TWS Variable Parity Error This bit is 1 if the most recent TWS format M 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 Bit5 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 Bit4 Reserved for future use Sixth character returned Bits 2 3 Reserved for future use Bit All Cards Addressed This bit is set to 1 if all cards on a serial daisychain have been addressed simultaneously with the command It is 0 otherwise BitO This Card Addressed This bit is set to
78. killed Ix80 0 this command can be used to enable all of the motors provided that they are not commutated by PMAC in that case each motor should be enabled with the command For multiple cards on a single serial daisy chain this command affects all cards on the chain regardless of the current software addressing lt CONTROL B gt Function Report status word for all motors Scope Global Syntax ASCII Value 2D 02 Remarks This command causes PMAC to report the status words for all of the motors to the host in hexadecimal ASCII form 12 characters per motor starting with motor 1 with the characters for each motor separated by spaces The characters reported for each motor are the same as if the command had been issued for that motor The detailed meanings of the individual status bits are shown under the command description For multiple cards on a single serial daisy chain this command affects only the card currently addressed in software n Page 123 9 0 Online Commands Example CTRL B 812000804001 812000804001 812000A04001 812000B04001 050000000000 050000000000 050000000000 050000000000 lt CR gt lt CONTROL C gt Function Reportall 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
79. line There are four possible values of I1 covering all the possible combinations SETTING MEANING 0 CS handshake used no software card address required 1 CS handshake not used no software card address required 2 CS handshake used software card address required 3 CS handshake not used software card address required When CS handshaking is used I1 is 0 or 2 PMAC waits for CS to go true before it will send a character This is the normal setting for real serial communications to a host it allows the host to hold off PMAC messages until it is ready Page 89 6 0 I Variables When CS handshaking is not used 11 is 1 or 3 PMAC disregards the state of the CS input and always sends the character immediately This mode permits PMAC to output messages values and acknowledgments over the serial port even when there is nothing connected which can be valuable in stand alone and PLC based applications where there are SEND and CMD statements in the program If these strings cannot be sent out the serial port they can back up stopping program execution 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 11 1s 2 or 3 PMAC assumes that there are other cards on the line so it requires that it be addressed with the
80. line containing the move that it is currently executing in the addressed coordinate system with the first line preceded by the program number and each line preceded by Page 172 9 0 Online Commands the address offset 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 If the coordinate system is not pointing to any motion program PMAC will return an error ERR003 if 1671 or 3 Initially the pointing must be done with the B constant command Examples LIST PE List presently executing line P5 35 X5Y30 PMAC responds LIST PE 4 List 4 program words starting with executing line P5 35 X5Y30 PMAC responds 37 X12Y32 LIST PE List rest of program starting with executing line P5 35 X5Y30 PMAC responds 37 X12Y32 39 X0 Y10 41 RETURN LIST PLC Function List the contents of the specified PLC program Scope Global Syntax LIST PLC constant where constant is an integer from 0 to 31 representing the number of the PLC program Remarks This command causes PMAC to report the contents of the specified PLC program buffer to the hos
81. loop Note To use PMAC s Hardware Position Capture for homing search moves the channel number of the flags specified by Ix25 must match the channel number of the encoder specified by Ix03 for position loop feedback 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 home flag 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 Extended Addressing The source address of the flag information occupies bits 0 to 15 of Ix25 range 0000 to SFFFF or 0 to 65535 If this is all that is specified that is all higher bits are zero then all of the flags are used and used in the normal mode low true FAULT disabling all motors If higher bits are set to one some of the flags are not used or used in an alternate manner as documented below Page 106 6 0 I Variables In the extended versions 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 Ix25 Motor x Flag Address and Modes Modes PMAC address of flags Hex 5 2 C 0 0 4 Bino 1 0 1 0 0 1 0 1 1 00 0 0 0 0 0 0 00 0 1 0 0
82. lt CTRL R gt for all coordinate systems simultaneously The program will execute all the way through unless stopped by command or error condition 4 Ifyou wish to execute just one move or a small section of the program use the S command CTRL S for all coordinate systems simultaneously The program will execute to the first move DWELL or DELAY or if it first encounters a BLOCKSTART command it will execute to the BLOCKSTOP command 5 When a run or step command is issued PMAC checks the coordinate system to make sure it is in proper working order If it finds anything in the coordinate system is not set up properly it will reject the command sending a BELL command back to the host If I6 is set to 1 or 3 it will report an error number as well telling the reason the command was rejected PMAC will reject a run or step command for any of the following reasons Page 63 6 0 Motion Programs e A motor in the coordinate system has both overtravel limits tripped ERRO10 e A motor in the coordinate system is currently executing a move ERRO11 e A motor in the coordinate system is not in closed loop control ERRO12 e A motor in the coordinate system in not activated Ix00 0 ERRO13 e There are no motors assigned to the coordinate system ERRO14 e A fixed non rotary motion program buffer is open ERRO15 e No motion program has been pointed to ERRO16 e After a or stop command a motor in the coordinate system i
83. mode the V command has the same effect as the H command bringing the motors to a stop in the same way but not permitting any moves while in feed hold mode The rate of deceleration to a stop in feed hold mode and from a stop on the subsequent R command is controlled by I variable I52 This is a global I variable that controls the rate for all coordinate systems Once halted in hold mode program execution can be resumed with the R command In the meantime the individual motors may be jogged way from this point but they must all be returned to this point using the J command before program execution may be resumed An attempt to resume program execution from a different point will result in an error ERRO17 reported if 16 1 or 3 If resumption of this program from this point is not desired the A abort command should be issued before other programs are run Examples amp 1B5R Command C S 1 to start PROG 5 Command feed hold of program 1J Jog Motor 1 positive J Stop jogging examine part here J Return to prejog position R Resume execution of PROG 5 Halt program execution 2J Jog Motor 2 negative J Stop jogging R Try to resume execution of PROG 5 lt BELL gt ERR017 PMAC reports error not at position to resume J Return to prejog position R Resume execution of PROG 5 A Function Abort all programs and moves in the currently addressed coordinate system Scope Coordinate system spe
84. moves Example If position units have been set as centimeters by the axis definition statements and it is desired that feedrate values be specified in cm sec this parameter would be set to 1000 0 time units sec If position units have been set as degrees by the axis definition statements and it is desired that feedrate values be specified in deg min this parameter would be set to 60 000 0 time units minutes If a spindle is rotating at 4800 rpm with a linear axis specified in inches and it is desired that linear speed be specified in inches per spindle revolution Ix90 would be set to 12 5 1 min 4800 rev 60 000 msec min 12 5 msec rev Page 117 6 0 I Variables IxX91 Coordinate System x Default Working Program Number Range 0 32 767 Default 0 Units Motion Program Numbers Remarks This parameter 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 It performs the same function for a hardware run command as the B command does for a software run command R It is intended primarily for stand alone PMAC applications The first use of a B command from a host computer for this coordinate system overrides this parameter 1x92 Coordinate System x Move Blend Disable Range 041 Default 0 Units none Remarks If this parameter set to 0 programmed blended moves LINEAR SPLINE and CIRCLE mode a
85. of the PMAC advanced online commands are not described Further information of all the PMAC online commands can be obtained from the PMAC Software Reference manual The PMAC motion controller is very rich in features and expansion capabilities Because this lt CONTROL A gt 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 However a multi axis system may not stay on its programmed path during this deceleration A lt CTRL A gt stop to a program is not meant to be recovered from gracefully because the axes will in general not stop at a programmed point The next programmed move will not behave properly unless a PMATCH command is given or I14 is set to 1 these cause PMAC to use the aborted position as the move start position Alternately an on line J command may be issued to each motor to cause it to move to the end point that was programmed when the abort occurred Then the program s can be resumed with an R run command To stop a motion sequence in a manner that can be recovered from easily use instead the Quit Q or lt CTRL Q gt or the Hold H or lt CTRL O gt command When PMAC is set up to power on with all motors
86. only be used in a motion program IF SIN P1 gt 0 5 Y 1000 SIN P1 ELSE P1 P1 5 Y 1100 SIN P1 ENDIF This example has single line true and false branches This structure could only be used in a motion program IF P1 lt 5 X10 ELSE X 10 ENABLE PLC Function Enable PLC Buffer s Type Motion program PROG and ROT PLC program Syntax ENABLE PLC constant constant ENABLE PLC constant constant ENA PLC constant constant ENA PLC constant constant Remarks This command enables the operation of the specified PLC buffer s provided I5 is set properly to allow their operation Examples ENABLE PLC 0 Page 214 10 Buffer Commands ENABLE PLC 1 2 5 ENABLE PIC 1 16 ENA PLC 7 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 It can close out the true branch following the IF statement in which case there is no false branch or it can close out the false branch following the ELSE statement When nesting conditions it is important to match this ENDIF with the proper IF or ELSE statement In a PLC program every IF or IF ELSE pair must take an ENDIF so the ENDIF always matches the most recent IF statement that does not already have a matching ENDIF In a motion program an IF or ELSE statement with action on the
87. only happen outside of the servo update so polling this bit will always return a value of 0 This bit is for internal use Bit 20 Servo Error This bit is 1 if PMAC could not properly complete its servo routines This is a serious error condition It is 0 if the servo operations have been completing properly Second character returned Bit 19 Data Gathering Function On This bit is 1 when the data gathering function is active it is 0 when the function is not active Bit 18 Data Gather to Start on Servo This bit is 1 when the data gathering function is set up to start on the next servo cycle It is 0 otherwise It changes from 1 to 0 as soon as the gathering function actually starts Bit17 Data Gather to Start on Trigger This bit is 1 when the data gathering function is set up to start on the rising edge of Machine Input 2 It is 0 otherwise It changes from 1 to 0 as soon as the gathering function actually starts Bit 16 Reserved for future use Third character returned Bit 15 Reserved for future use Bit 14 Leadscrew Compensation On This bit is 1 if leadscrew compensation is currently active in PMAC It is 0 if the compensation is not active Page 147 9 0 Online Commands Bitl3 Any Memory Checksum Error This bit is 1 if a checksum error has been detected for either the PMAC firmware or the user program buffer space Bit 12 ofthis word distinguishes between the two cases Bitl12 PROM Checksum Error This bit
88. operation This means that anything changed in PMAC s active memory that is not saved to flash memory will be lost in a power on reset cycle The SAVE operation can be inhibited by changing jumper E50 from its default state If the SAVE command is issued with jumper E50 not in its default state PMAC will report an error The retrieval of information from non volatile memory on power up reset can be inhibited by changing jumper E51 from its default state 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 PMAC s 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 Page 190 9 0 Online Commands During execution of the SAVE command PMAC will execute no other background tasks including user PLCs and automatic safety checks such as following error and overtravel limits Particularly on boards with the flash backup where saving takes many seconds you must make sure the system is not depending on these tasks for safety when the SAVE command is issued Examples I130 60000 SetMotor proportional gain SAVE Save to non volatile memory I130 80000 Setnew value
89. part multiplied by 100 000 representing the line label zero fractional part means the top of the program Remarks This command causes PMAC to set the program counter of the addressed coordinate system to the specified motion program and location It is usually used to set the program counter to the Beginning of a motion program The next R or S command will start execution at this point If constant is an integer the program counter will point to the beginning of the program whose number matches constant Fixed motion program buffers PROG can have numbers from 1 to 32 767 The rotary motion program carries program number 0 for the purpose of this command If constant is not an integer the fractional part of the number represents the line label N or O in the program to which to point The fractional value multiplied by 100 000 determines the number of the line label to which to point it fills the fraction to 5 decimal places with zeros If a motion program buffer including ROTARY is open when this command is sent to PMAC the command is entered into the buffer for later execution to be interpreted as a B axis move command Examples B7 points to the top of PROG 7 BO points to the top of the rotary buffer B12 6 points to label N60000 of PROG 12 B3 025R points to label N2500 of PROG 3 and runs Page 152 9 0 Online Commands CLEAR Function Erase currently opened buffer Scope Global Syntax CLEAR CLR
90. pin J4A connector jumpers E107 and E108 must connect pins 2 and 3 Connectors J4 and J4A cannot be used at the same time Delta Tau provides cables for connecting PMAC with a host computer Accessory 3D connects J4A to a DB 25 connector ACC 3L connects J4 to a DB 9 connector Standard DB 9 to DB 25 or DB 25 to DB 9 adapters may be needed for your particular setup Ifa cable needs to be made the easiest approach is to use a flat cable prepared with flat cable type connectors as indicated in the following diagrams PMAC IDC 10 PC DB 9 DB 9 1 1 Female IDC 10 2 6 DSR 3 2 RXD 4 7 RTS 5 3 TXD 6 8 CTS 7 4 DTR 8 9 Do not connect 9 5 Gnd wire 10 10 No connect PMAC IDC 26 PC DB 25 1 1 2 14 3 2 TXD 4 15 5 3 RXD DB 25 6 1 Female IDC 26 l SUID 4 8 17 9 5 CTS 10 18 11 6 DSR 12 19 B 7 Gnd 14 20 DTR 15 8 16 21 17 9 L 18 22 J 19 10 Do not connect 20 23 wire 26 21 11 22 24 23 12 24 25 25 13 26 No connect Page 30 J4 JRS232 SERIAL PORT CONNECTOR 4 0 Machine Connections J4 JRS232 10 PIN CONNECTOR 9 OOO0OO 1 10 ODO OO O 2 Front View SYMBOL FUNCTION DESCRIPTION NOTES PHASE OUTPUT
91. port will be in DCE or DTE format The default configuration permits straight across connection to a PC DB 9 serial port Jump E9 1 to E9 2 to allow RXD to be input on J4 3 Jump E10 1 to E10 2 to allow TXD to be output on J4 5 Jump E9 1 to E10 1 to allow TXD to be output on J4 3 Jump E9 2 to E10 2 to allow RXD to be input on J4 5 Jump E13 1 to E13 2 to allow RTS to be input on J4 7 Jump E14 1 to E14 2 to allow CTS to be output on J4 9 Jump E13 1 to E14 1 to allow CTS to be output on J4 7 Jump E13 2 to E14 2 to allow RTS to be input on J4 9 E44 E47 Serial Baud Rate Selection Default Configuration E44 E45 E46 E47 OFF ON ON OFF 2 0 PMAC Jumper Configuration The configuration of these jumpers and the particular CPU option ordered usually written on chip U13 on PMAC determine the baud rate at which PMAC will communicate through its J4 or J4A serial port BAUD RATE CONTROL 20 MHz Flash CPU Battery CPU 40 MHz 60MHzFlash CPU OPT 4A Flash CPU Opt 5A Opt 5B Opt 5C OFF OFF ON ON 60 X Q0 f 180 240 OFF ON ON OFF F Non standard baud rate E49 Serial Communications Parity Control Default Configuration E49 ON This jumper is related to an advanced feature and should not be changed from default E66 E71 E91 E92 ISA Bus Base Address Control Default Configuration E66 E67 E68 E6
92. same direction to keep the same effect For instance if the servo update time is cut in half from 440 usec to 220 usec Ix33 must be cut in half to keep the same effect 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 Ix34 Motor x PID Integration Mode Range 0 1 Default 1 Units none Remarks This parameter controls when the position error integrator is turned on If it is 1 position error integration is 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 If 1x34 is 1 it is the input to the integrator that is turned off during a commanded move which means the output control effort of the integrator is kept constant during this period but is generally not zero This same action takes place whenever the total control output saturates at the Ix69 value This parameter is usually set initially using the Tuning utility in the PMAC Executive Program When performing the feedforward tuning part of that utility it is important to set 1x34 to 1 so the dynamic behavior of the system may be observed without integrator action Ix34 may be changed on the fly at any time to create types of adaptive control Ix35 Motor x PID Acceleration Feedforward Gain Range 0 8 388 607 Default 0 Units Ix30 Ix08 226 DAC bits
93. scans Examples 1 Request status of Motor 1 812000804401 PMAC responds with 12 hex digits representing 48 bits The following bits are true all others are false Word 1 Bit 23 Motor Activated Bit 16 Integration Mode Bit 13 Desired Velocity Zero Word 2 Bit 23 Assigned to Coordinate System Bits 20 22 all 0 assigned to C S 1 Bit 14 Amplifier Enabled Bit 10 Home Complete Bit 0 In Position Page 142 9 0 Online Commands 7 Function Report the status words of the addressed coordinate system Scope Coordinate system specific Syntax Remarks This causes PMAC to report status bits of the addressed coordinate system 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 The seventh character represents bits 20 23 of the second word the twelfth character represents its 0 3 The value of a bit is 1 when the condition is true 0 when it is false The meanings of the individual bits are FIRST WORD RETURNED X 0818 X 08D8 etc First character returned Bit 23 Z Axis Used in Feedrate Calculations This bit is 1 if this axis is used in the vector feedrate calculations for F based moves in the coordinate system it is O if this axis is not used See the FRA
94. select which index channel pulse is used as the home trigger Although the homing switch does not need to be placed extremely accurately in this type of application it 1s important that its triggering edge remain safely between the same two index channel pulses Also the homing switch pulse must be wide enough to always contain at least one index channel pulse Page 52 5 0 Programming PMAC Action on Trigger In the homing search move as soon as the PMAC firmware recognizes that the hardware trigger has occurred it takes several actions It reads the position at the time of capture usually the hardware capture regsiter and uses it and the Ix26 home offset parameter to compute the new motor zero position As soon as this is done reported positions are referenced to this new zero position plus or minus any axis offset in the axis definition statement if the axis definitions is 41 gt 10000X 3000 the home position will be reported as 3000 counts If software overtravel limits are used Ix13 Ix14 not equal to zero they are re enabled at this time after having been automatically disabled during the search for the trigger The trajectory to this new zero position is then calculated including deceleration and reversal if necessary Note that if a software limit is too close to zero the motor may not be able to stop and reverse before it hits the limit The motor will stop under position control with its commanded position equal
95. such as Delta Tau s Accessory 26 Motor parameters 1 No movement at all Check the following a Are both limits held low to AGND and sourcing current out of the pins b Do you have proper supply to A 15V A 15V and AGND c Is your proportional gain Ix30 greater than zero d Can you measure any output at the DAC pin when an O command has been given e Are you tripping your following error limit Increase the fatal following error limit Ix11 by setting it to a more appropriate value and try to move again 2 Movement but sluggish Check the following a Is proportional gain Ix30 too low Try increasing it as long as stability is kept b Is your big step limit Ix67 too low Try increasing it to 8 000 000 near the maximum to eliminate any effect c Is your output limit Ix69 too low Try increasing it to 32 767 the maximum to make sure PMAC can output adequate voltage d Can an integrator help Try increasing integral gain Ix33 to 10 000 or more and the integration limit 1x63 to 8 000 000 3 Runaway condition Check the following a Do you have feedback Check that you can read position changes in both directions b Does your feedback polarity match output polarity Recheck the polarity match as explained above 4 Brief movement then stop Check the following a Are you tripping your following error limit Increase the fatal following error limit 1x11 by setting it to a more appropriate value and
96. than zero and motor x is assigned to a rotary axis A B or C rollover is active With rollover active 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 Axis moves in Incremental INC mode are not affected by rollover When Ix27 1s set to 0 there is no rollover Rollover should not be attempted for axes other than A B or C Jog moves are not affected by rollover Reported motor position is not affected by rollover To obtain motor position information rolled over to within one motor revolution use the modulo remainder operator either in PMAC or in the host computer e g P4 M462 I408 32 1427 Example Motor 4 drives a rotary table with 36 000 counts per revolution It is defined to the A axis with amp 4 21004A A is in units of degrees 1427 is set to 36000 With motor 4 at zero counts A axis at zero degrees an A270 move in a program is executed in Absolute mode Instead of moving the motor from 0 to 27 000 counts which it would have done with 1427 0 PMAC moves the motor from 0 to 9 000 counts or 90 degrees which is equivalent to 270 degrees on the rotary table Page 109 6 0 I Variables 1x28 Motor x In position Band Range 0 8 388 607 Default 160 10 counts Units 1 16 Count Remarks This is the magnitude of the maximum following error at which motor x will be considered in posit
97. the I J K vector specification instead Examples 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 Page 224 10 Buffer Commands 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 of 3 total of 9x J data Function J Vector Specification for Circular Moves Type Motion program PROG and ROT Syntax J data where data is a floating point constant or expression representing the magnitude of the J component of the vector in scaled user axis units Remarks In circular moves this specifies the component of the vector to the arc center that is parallel to the Y axis The starting point of the vector is either the move start point for INC R mode default or the XYZ origin for ABS R mode 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 Examples X10 Y20 I5 J5 Y 2 P1 J P1 J33 333 specifies a full circle whose center is 33 333 units in the positive Y direction from the start and end point NORMAL J 1 spec
98. the control panel port for coordinate system specific control panel inputs and that different coordinate systems may be addressed from programs within PMAC for COMMAND statements Examples amp Ask PMAC which C S is addressed 4 PMAC reports that C S 4 is addressed Function Halt program execution at end of currently executing move Scope Coordinate system specific Syntax Page 138 9 0 Online Commands 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 11370 If PMAC is not in segmentation mode 113 0 the command has the same effect as the Q command halting execution at the end of the latest calculated move which can be 1 or 2 moves past the currently executing move Once halted at the end of the move program execution can be resumed with the R command In the meantime the individual motors may be jogged way from this point but they must all be returned to this point using the J2 command before program execution may be resumed An attempt to resume program execution from a different point will result in an error ERRO17 reported if 16 1 or 3 If resumption of this program from this point is not desired the A abort command should be issued before other programs are run Examples amp lB5R Command C S 1 to start PROG 5 Halt execut
99. the latest programmed move by multiplying the XYZ vector by this matrix Page 203 10 Buffer Commands The rotation and scaling is done relative to the base XYZ coordinate system defined by the axis definition statements The math performed is Xrot Yrot Zrot Rot Matrix Xbase Y base Zbase This command does not cause any movement of any axes it simply renames the present positions Note When using this command 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 Examples 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 Q442COS 30 Q45 0 046 0 Q47z20 Q48 1 AROT 40 Implement the change Create a 3x3 matrix to scale the XYZ space by a factor of 3 Q5023 Q51 0 Q52 0 Q53z0 Q54z23 Q55z0 Q56z0 Q57 0 Q5823 AROT 50 Implement the change B dataj Function B Axis Move Type Motion program PROG and ROT Syntax B data where data is a floating point constant or expression representing the position or distance in user units for the U axis Remarks This command causes a move of the B axis See axis data description above Program commands axis data A C U V W X Y Z CALL READ BLOCKSTART Function Mark Start of Stepping Block Type Motion program PROG and ROT Syntax BLOCKSTART
100. the motor to be 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 Examples This example shows how the command can be used to move a motor from one coordinate system to another n EEE Address C S 1 34 2 E Request definition of 4 50008 eese PMAC responds 84 520 Clear definition amp 2 sinon Address C S 2 4 gt 5000A Make new definition in C S 2 constant gt axis definition Function Assign an axis definition for the specified motor Scope Coordinate system specific Syntax constant gt axis definition where constant is an integer from 1 to 8 representing the number of the motor whose axis definition is to be made axis definition consists of 1 to 3 sets of scale factor axis separated by the character in which the optional scale factor isa floating point constant representing the number of motor counts per axis unit engineering unit if none is specified PMAC assumes a value of 1 0 axis isa letter X Y Z A B C U V W representing the axis to which the motor is to be matched offset optional is a floating point constant representing the difference between axis zero position and motor zero home position in motor counts if none i
101. the program along with speed and move modes makes it much easier for later debugging If Ix88 is zero the acceleration is constant throughout the Ix87 time and the velocity profile is trapezoidal If Ix88 is greater than zero the acceleration will start at zero and linearly increase through Ix88 time then stay constant for time TC until Ix87 Ix88 time and linearly decrease to zero at Ix87 time that is Ix87 2 Ix88 TC If Ix88 is equal to Ix87 2 the entire acceleration will be spec in S curve form Ix88 values greater than Ix87 2 override the Ix87 value total acceleration time will be 2 Ix88 The acceleration time will be extended automatically when any motor in the coordinate system is asked to exceed its maximum acceleration rate Ix17 for a programmed LINEAR mode move with 113 0 no move segmentation Make sure the specified acceleration time TA or 2 TS is greater than zero even if you are planning to rely on the maximum acceleration rate parameters Ix17 A specified acceleration time of zero will cause a divide by zero error The minimum specified time should be TA1 TSO Page 116 6 0 I Variables Ix89 Coordinate System x Default Program Feedrate Move Time Range positive floating point Default 1000 0 Units user position units feedrate time units for feedrate msec for move time Remarks This parameter sets the default feedrate commanded speed for programmed LINEAR and CIRCLE mode moves in coordin
102. 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 CONTROL Z command to cause the response port to revert back to the serial port If a program particularly a PLC program sends messages immediately on power up reset it can confuse a host computer program such as the PMAC Executive Program that is trying to find PMAC by querying it and looking for a particular response It is possible particularly in PLC programs to order the sending of messages faster than the port can handle them This will almost always happen if the same SEND command is executed every scan through the PLC For this reason it is good practice to have at least one of the conditions that causes the SEND command to execute to be set false immediately to prevent execution of this SEND command on subsequent scans of the PLC To cause PMAC to send the value of a variable use the COMMAND statement instead specifying the name of the variable in quotes e g CMD P1 Examples SEND Motion Program Started SENDS DONE SENDP Spindle Command Given IF M188 1 C S 1 Warning Following Error Bit set IF P188 0 But not set last scan P188 follows M188 SEND Excessive Following Error _ Notify operator P188 1 To prevent repetition of message ENDIF ELSE F E Bit not set P188 0 To prepare for next time ENDIF SEND THE VALUE OF P7 IS PMAC to send the message s
103. they can be very noisy For purposes of display it is probably better to use averaged velocity values held in registers Y 082A Y 08EA etc accessed with M variables Examples V Request actual velocity of addressed motor Page 193 9 0 Online Commands 21 9 PMAC responds with 21 9 cts cycle 8 388 608 3 713 707 49 5 cts msec 46v Request velocity of Motor 6 4 2 PMAC responds 5V 2V Request velocities of Motors 5 and 2 0 PMAC responds with Motor 5 first 7 6 PMAC responds with Motor 2 second VERSION Function Report PROM firmware version number Scope Global Syntax VERSION VER Remarks This command causes PMAC to report the firmware version it is using When a flash memory PMAC is in bootstrap mode powering up with E51 ON PMAC will report the version of the bootstrap firmware not the operational firmware Otherwise it will report the operational firmware version To change from bootstrap mode to normal operational mode use the CTRL R command Examples VERSION Ask PMAC for firmware version 1 12D PMAC responds W address Function Write value s to a specified address es Scope Global Syntax W address value value where address consists of a letter X Y or L an option colon and an integer value from 0 to 65535 in hex 0000 to FFFF specifying the starting PMAC memory or I O address to be read constant is an integer specified in
104. this before sending a query command for which you are expecting an exact response format if you are not sure what PMAC has been doing before because it makes sure nothing else comes through before the expected response As such it is often the first character sent to PMAC from the host when trying to establish initial communications Note This command empties the command queue in PMAC RAM but it cannot erase the 1 or 2 characters already in the response port A robust algorithm for clearing responses would include 2 character read commands that can time out if necessary For multiple cards on a single serial daisy chain this command affects all cards on the chain regardless of the current software addressing lt CONTROL Y gt Function Report last command line Scope Global Syntax ASCII Value 25D 19 Remarks This causes PMAC to report the last command line to the host with no trailing lt CR gt and to re enter the line into the command queue ready to execute upon the next receipt of lt CR gt This allows a user communicating with PMAC in terminal mode to recall the last command and to be able to edit it with the backspace and typing in desired changes The command will be re executed when the host sends a lt CR gt Examples P123 5 lt CR gt Set the first value P124 7 lt CR gt Set the second value P123 lt CR gt Query the first value 5 icit ined PMAC responds with value CTRL Y Tell PMAC
105. this may have to be changed during the polarity test This magnitude and direction mode is suited for driving servo amplifiers that expect this type of input and for driving voltage to frequency V F converters such as PMAC s ACC 8D Option 2 board for running stepper motor drivers If you need to limit the range of each signal to 5V you will do so with parameter Ix69 Any analog output not used for dedicated servo purposes may be utilized as a general purpose analog output Usually this is done by defining an M variable to the digital to analog converter register suggested M variable definitions M102 M202 etc then writing values to the M variable The analog outputs are intended to drive high impedance inputs with no significant current draw The 220Q output resistors will keep the current draw lower than 50 mA in all cases and prevent damage to the output circuitry but any current draw above 10 mA can result in noticeable signal distortion PADS JMACH1 DAC1 43 45 DAC1 Connect to the amplifier 10 Volts command input 58 AGND C The DACs screen of the EZ PMAC Setup Software allows outputting a particular voltage to the G appropriate DAC output which could then be measured with a voltmeter Amplifier enable signal AENAx DIRn Most amplifiers have an enable disable input that permits complete shutdown of the amplifier regardless of the voltage of the command signal PMAC s AENA line is meant
106. time Ix87 is default there is no feedrate specification allowed Each move on each axis is computed as a cubic position trajectory in which the intermediate positions are relaxed somewhat so there are no velocity or acceleration discontinuities in blending the moves together Before the first move in any series of consecutive moves a starting move of TA time is added to blend smoothly from a stop After the last move in any series of consecutive moves an ending move of TA time is added to blend smoothly to a stop Ifthe TA time is changed in the middle of a series of moves there will be a stop generated with an extra TA move and an extra TA move added This command will take the program out of any of the other move modes LINEAR CIRCLE PVT RAPID The program will stay in this mode until another move mode command is executed Examples RAPID X10 Y10 SPLINE TA100 X20 Y15 X32 Y21 X43 Y26 X50 Y30 DWELL100 RAPID X0 YO SPLINE2 Function Put program in non uniform cubic spline motion mode Type Motion program PROG and ROT Syntax SPLINE2 Remarks This modal command puts the program in non uniform cubic spline mode This mode is virtually identical to the SPLINE1 uniform cubic spline mode described above except that the TA segment time can vary in a continuous spline This makes SPLINE2 mode more flexible than SPLINE1 mode but it takes slightly more computation time Examples RAPID X10 Y10 SPLINE2 X20 Y15 T
107. time of 442 usec provides a transition time between 0 and 100 of one second Ifthere is a hardware source as defined by Ix93 the commanded time base value changes every servo cycle and the rate of change of the commanded value is typically limited by hardware considerations e g inertia In this case Ix94 effectively defines the maximum rate at which the 94 value can slew to the new hardware determined value and the actual rate of change is determined by the hardware If you wish to keep synchronous to a hardware input frequency as in a Page 118 6 0 I Variables position lock cam Ix94 should be set high enough that the limit is never activated However following motion can be smoothed significantly with a lower limit if total synchronicity is not required Ix95 Coordinate System x Feed Hold Deceleration Rate Range 0 8 388 607 Default 1644 Units 2 23 msec servo cycle Remarks This parameter 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 A feed hold command is equivalent to a 0 command except that it uses Ix95 for its slew rate instead of Ix94 Having separate slew parameters for normal time base control and for feed hold commands allows both responsive ongoing time base control Ix94 relatively high and well controlled holds Ix95 relatively low The default Ix95 value of 1644
108. time parameters small enough that the limiting acceleration rate parameter is always used Page 48 5 0 Programming PMAC Even if you wish to specify your acceleration by rate do not set both acceleration time parameters Ix20 and Ix21 to zero This will cause a division by zero error in the move calculations that could cause erratic movement The minimum acceleration time setting should be Ix20 1 and Ix21 0 Jog Speed Jogging speed is specified by Ix22 which is a magnitude of the velocity in counts per millisecond Direction is specified by the jog command itself Jog Commands The commands to jog a motor are on line immediate commands that are motor specific they act on the currently addressed motor A jog command to a motor will be rejected if the motor is in a coordinate system that is currently executing a motion program even if the motion program is not commanding that motor to move PMAC will report ERROOI if I6 is set to 1 or3 Indefinite Jog Commands J commands an indefinite positive jog for the addressed motor J commands an indefinite negative jog J commands an end to the jog leaving the motor in position control after the deceleration It is possible for the J command to leave the commanded position at a fractional count which can cause dithering between the adjacent integer count values Ifthis is a problem the J command can be used to force the commanded position to the nearest integer count value
109. 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 In standalone applications it is a good idea to set I1 to 1 disabling the serial handshake so any responses can be sent out the serial port the default response port at any time even if there is no host to receive it Page 208 10 Buffer Commands In a PLC program it is a good idea to have at least one of the conditions that caused the command issuance to occur set false immediately This will prevent the same command from being issued again on succeeding scans of the PLC overflowing the command and or response queues Typically in a motion program the time between moves prevents this overflow unless there are a lot of commands and the moves take a very short time PMAC will not issue an acknowledging character lt ACK gt or lt LF gt to a valid command issued from a program It will issue a BELL character for an invalid command issued from a program unless I6 is set to 2 It is a good idea to have I6 not set to 2 in early development so you will know when PMAC has rejected such a command Setting I6 to 2 in the actual application can prevent program hangup from a full response queue or from disturbing the normal host communications protocol Many otherwise valid commands will be rejected when issued from a motion program For in
110. to open the specified fixed non rotary motion program buffer for entry or editing Subsequent program commands valid for motion programs will be entered into this buffer When entry of the program is finished the CLOSE command should be used to prevent further lines from being put in the buffer No other program buffers PLC fixed or rotary motion may be open when this command is sent PMAC will report ERROO7 if 16 1 or 3 It is a good idea always to precede an OPEN command with a CLOSE command to make sure no other buffers have been left open No motion programs may be running in any coordinate system when this command is sent PMAC will report ERROO1 if 16 1 or 3 As long as a fixed motion program buffer is open no motion program may be run in any coordinate system PMAC will report ERRO15 if 16 1 or 3 PROGs 1000 32767 can be protected by password If the PROG 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 After any fixed motion program buffer has been opened each coordinate system must be commanded to point to a motion program with the B constant command before it can run a motion command otherwise PMAC will report ERRO15 if 16 1 or 3 Examples CLOSE Make sure other buffers are closed DELETE GATHER Make sure memory is free OPEN PROG 255 Open buffer for entry disabling program CLEAR Erase existing contents X10 Y20 F5 Enter new ve
111. to report last command DAZ 3 ve ie PMAC reports last command lt BACKSPACE gt 4 lt CR gt Modify to P124 and send i eC reece PMAC tells value of P124 lt CONTROL Z gt Function Set PMAC in serial port communications mode Scope Global Syntax ASCII Value 26D 1A Remarks This command causes the PMAC s serial port to become the active communications output port All PMAC responses directed to the host will be sent over the serial port This mode will continue until a command is received over the bus parallel port which will make the bus port the active communications output port PMAC powers up resets with the serial port the active port Page 130 9 0 Online Commands 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 Examples Serial host sends P1 PMAC responds to serial port 12 Bus host sends P1 P1 1 Serial host sends P1 PMAC responds to bus port 13 Serial host gets no response Serial host sends lt CTRL Z gt P1 PMAC responds to serial port 13 4 Function Report currently addressed motor Scope Global Syntax Remarks This causes PMAC to return
112. trigger position can either be the hardware captured position for the or a software read position If bit 16 of Ix03 is 0 the default the encoder position latched by the trigger in PMAC s DSPGATE hardware is used as the trigger position This is the most accurate option because it uses the position at the moment of the trigger but it can only be used with incremental encoder feedback brought in on the same channel number as the triggering flag set This option cannot be used for other types of feedback or for triggering on following error If bit 16 of Ix03 is 1 PMAC reads the present sensor position after it sees the trigger This can be used with any type of feedback and either trigger condition but can be less accurate than the hardware capture because of software delays Page 169 9 0 Online Commands 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 sytem that is currently running a motion program reporting ERRO01 if I6 is 1 or 3 Examples 17 1000 Jog to pre jog position in the absence of a trigger but if trigger is found jog to 1000 counts from trigger 27 5000 100 Jog 5000 counts in the positive direction in the absence of a trigger but if trigger is found jog to 100 counts from trigger position 37 20000 0 Jog to 20000 counts in the absence of a trigger but if trigger is found
113. value s Scope Global Syntax M constant constant where constant is an integer from 0 to 1023 representing the number of the M variable the optional second constant must be at least as great as the first constant it represents the number of the end of the range Remarks This command causes PMAC to report the current value of the specified M variable or range of M variables It does not cause PMAC to report the definition address of the M variable s that is done with the M constant gt command Note Ifa motion program buffer including a rotary buffer is open when this command is sent to PMAC it will be entered into the buffer for later execution to be interpreted as an M code subroutine call Examples MO Host asks for value 3548976 PMAC s response M165 Bie 7S M1 3 FOR M constant expression Function Assign value to M variable s Scope Global Syntax M constant constant expression where constant is an integer from 0 to 1023 representing the number of the M variable the optional second constant must be at least as great as the first constant it represents the number of the end of the range expression contains the value to be given to the specified M variable s Remarks This command assigns the value on the right side of the equals sign to the specified M variable s It does not assign a definition address to the M variable s that is done with the
114. variable GOTO command permits the equivalent structure to the CASE statement found in many high level languages see Examples below If the specified line label is not found the program will stop and the coordinate system s Run Time Error bit will be set Modern philosophies of the proper structuring of computer code strongly discourage the use of GOTO because of its tendency to make code undecipherable Examples GOTO750 GOTO35000 GOTOI GOTO 50 P1 N51 P10 50 SIN P11 GOTO60 N52 P10 50 COS P11 GOTO60 N53 P10 50 TAN P11 N60 X P10 HOME Function Programmed Homing Type Motion program Syntax HOME constant constant HOME constant constant constant constant HM constant constant HM constant constant constant constant where constant is an integer from 1 to 8 representing a motor number Remarks This causes the specified motor s to go through their homing search cycle s Note that the motors must be specified directly by number not the matching axis letters You must specify which motors are to be homed All motors specified in a single HOME command e g HOME1 2 will start their homing cycles simultaneously if you wish some motors to home sequentially specify them in consecutive commands e g HOME1 HOME2 even if on the same line Any previous moves will come to a stop before the home moves start No other program statement will be executed until all sp
115. with coordinate system 1 with the characters for each coordinate system separated by spaces The characters reported for each coordinate system are the same as if the command had been Issued for that coordinate system The detailed meanings of the individual status bits are shown under the command description For multiple cards on a single serial daisy chain this command affects only the card currently addressed in software by the Gn command Example lt CTRL C gt A80020020000 A80020020000 A80020020000 A80020020000 A80020000000 A80020000000 A80020000000 A80020000000 lt CR gt lt CONTROL D gt Function Disable all PLC programs Scope Global Syntax ASCII Value 4D 04 Remarks This command causes all PLC programs to be disabled i e stop executing This is the equivalent of DISABLE PLC 0 31and DISABLE PLCC 0 31 Itis especially useful if a CMD or SEND statement in a PLC has run amok For multiple cards on a single serial daisy chain this command affects all cards on the chain regardless of the current software addressing Example TRIGGER FOUND TRIGTRIGER FOTRIGGER FOUND TRTRIGTRIGGER FOUND Out of control SEND message from PLC lt CTRL D gt Command to disable the PLCs RUE No more messages can now edit PLC Page 124 9 0 Online Commands lt CONTROL F gt Function Report following errors for all motors Scope Global Syntax ASCII Value 6D 06 Remarks This comma
116. 05 gt Y COOF 8 16 S M505 gt Y C016 8 16 S M605 gt Y C017 8 16 S M705 gt Y C01E 8 16 S M805 gt Y C01F 8 16 S EQU compare flag latch control M111 gt X C000 11 1 M211 gt X C004 11 1 M311 gt X C008 11 1 M411 gt X C00C 11 1 M51 1 gt X C010 11 1 M61 1 gt X C014 11 1 M711 gt X C018 11 1 M811 gt X C01C 11 1 EQU compare output enable M112 gt X C000 12 1 M212 gt X C004 12 1 M312 gt X C008 12 1 M412 gt x M512 gt X C010 12 1 M612 gt X C014 12 1 M712 gt X C018 12 1 M812 gt X C01C 12 1 EQU compare invert enable M113 gt X C000 13 1 M213 gt X C004 13 1 M313 gt X C008 13 1 M413 gt M513 gt X C010 13 1 M613 gt X C014 13 1 M713 gt X C018 13 1 M813 gt X C01C 13 1 AENA DIR Output M114 gt X C000 14 1 M214 gt X C004 14 1 M314 gt X C008 14 1 M414 gt X M514 gt X C010 14 1 M614 gt X C014 14 1 M714 gt X C018 14 1 M814 gt X C01C 14 1 EQU compare flag M116 gt X C000 16 1 M216 gt X C004 16 1 M316 gt X C008 16 1 M416 gt M516 gt X C010 16 1 M616 gt X C014 16 1 M716 gt X C018 16 1 M816 gt X C01C 16 1 ENC position captured flag M117 gt X C000 17 1 M217 gt X C004 17 1 M317 gt X C008 17 1 M417 gt M517 gt X C010 17 1 M617 gt X C014 17 1 M717 gt X C018 17 1 M817 gt X C01C 17 1 ENC Count error flag M118 gt X C000 18 1 M218 gt X C004 18 1 M318 gt X C008 18 1 M418 gt X C00C 18 1 M518 gt X C010 18 1 M618 gt X C014 18 1 M718 gt X C018 18 1 M818 gt X C01C 18 1 ENC 3rd channel input status M11
117. 1 16 count Motor x Friction Feedforward 32 768 32 767 0 DAC bits Motor x DAC Limit Commutation I Variables 0 32 767 Range 20 480 6 25V Default DAC bits Units Motor x Number of Commutation Cycles 0 255 1 Commutation cycles Motor x Counts N Commutation Cycles 8 388 607 1000 Counts Motor x Commutation Phase Angle 85 120 e 360 256 elec deg 1 256 commutation cycle Motor x Phase Finding Value 0 0 255 0 32 767 bits of 16 bit DAC Motor x Phase Finding Time 0 255 Servo Interrupt Cycles for Ix80 0 or 1 Servo Interrupt Cycles 256 for Ix80 2 or 3 Motor x Power On Phase Position Offset 8 388 608 8 388 607 Encoder counts Ix70 Motor x Velocity Phase Advance Gain 0 8 388 607 Angle Vel Motor x Magnetization Current 32 768 32 767 DAC bits Motor x Slip Gain 0 8 388 607 vi electrical cycles update DAC bit Motor x 2nd Phase DAC Bias 32 768 32 767 DAC bits Motor x Power On Mode 0 3 none Motor x Power On Phase Position Address PMAC addresses Extended PMAC or multiplexer port addresses Motor x Ongoing Position Address Further Motor I Variables PMAC addresses Range Legal PMAC X and Y addresses Units Motor x Backlash Takeup Rate 0 8 388 607 1 16 Counts Background Cycle Motor x Backlash Size Coordi
118. 1 if this card is on a serial daisychain and has been addressed with the n command It is 0 otherwise SECOND WORD RETURNED Y 0003 Seventh character returned Bit 23 For internal use Bit22 Host Communication Mode This bit is 1 when PMAC is prepared to send its communications over the host port PC bus or STD bus It is 0 when PMAC is prepared to send its communications over the VMEbus or the serial port It changes from 0 to 1 when it receives an alphanumeric command over the host port It changes from 1 to 0 when it receives a lt CTRL Z gt over the serial port Bits 20 21 For Internal Use Page 148 9 0 Online Commands Eighth character returned Bit19 Motion Buffer Open This bit is 1 if any motion program buffer PROG or ROT is open for entry It is 0 if none of these buffers is open Bit 18 Rotary Buffer Open This bit is 1 if the rotary motion program buffer s ROT is are open for entry It is 0 if this is these are closed Bit17 PLC Buffer Open This bit is 1 ifa PLC program buffer is open for entry It is 0 if none of these buffers is open Bit 16 PLC Command This bit is 1 if PMAC is processing a command issued from a PLC or motion program through a CMD statement It is 0 otherwise It is primarily for internal use Ninth character returned Bit 15 VME Communication Mode This bit is 1 when PMAC is prepared to send its communications over the VME bus mailbox port It is 0 when P
119. 1 into limit and offset out of it I125 2 CO000 Re enable LIM as limits CLOSE End of program eee P C Set up Variables to be saved 74ko CLOSE I123 10 Home speed 10 cts msec negative I125 C000 Use Flags1 for Motor 1 limits enabled I126 32000 Home offset of 2000 counts enough to take you out of the limit 1902 3 Capture on rising flag and rising index 1903 2 Use LIM1 as flag negative end switch M133 gt X 003D 13 1 Desired Velocity Zero bit M145 gt Y 0814 10 1 Home complete bit eee PTC program to execute routine Peeeeeeeecereeeierierer OPEN PLC 10 CLEAR I1252 2C000 Disable LIM as limits CMD 1HM Home 1 into limit and offset out of it WHILE M145 1 Waits for Home Search to start ENDWHILE WHILE M133 0 Waits for Home motion to complete ENDWHILE I125 sc000 Re enable LIM as limits DIS PLC10 Disables PLC once Home is found CLOSE End of PLC Page 55 5 0 Programming PMAC Multi Step Homing Procedures You may require a homing procedure that cannot be executed with a single PMAC homing move In this case you will use two or possibly more homing search moves changing the move parameters in between Although this can be done with a sequence of on line commands it is probably easier to create a small motion program to execute the sequence Which Direction to Home The most common of these situations is the case in which you do not know on which side of the home t
120. 2 163 163 163 164 164 165 165 166 166 167 168 168 169 170 170 171 172 172 173 173 175 175 176 176 177 177 178 179 O constantj OPEN PLC OPEN PROGRAM P P constant P constant expression PASSWORD string PC PE PMATCH Q Q constant Q constant expression R R H address S SAVE SIZE TYPE UNDEFINE UNDEFINE ALL V VERSION W address Z 11 BUFFER COMMANDS axis data faxis dataj axis data data faxis data data axis data data axis data data 179 180 181 182 182 183 183 184 185 185 186 187 187 188 188 189 190 191 191 192 193 193 194 194 195 197 197 197 198 axis data axis data vector data vector data A data ABS ADDRESS ADIS constant AND condition AROT constantj B data BLOCKSTART BLOCKSTOP C data CALL CIRCLE1 CIRCLE2 COMMAND command COMMAND letter DELAY data DISABLE PLC constant constant DISPLAY constant message DISPLAY variable DWELL ELSE ENABLE PLC ENDIF ENDWHILE F data FRAX GOSUB GOTO 199 200 201 201 202 203 203 204 204 205 205 206 207 207 208 209 210 211 211 212 212 213 214 215 215 216 217 218 218 HOME HOMEZ I data I constant expressi
121. 200000 150000 100000 50000 ine 50000 0 0 0 1 0 2 0 3 0 4 0 5 0 6 07 0 8 Time sec Page 67 6 0 Motion Programs Notes about linear interpolation moves TA TA 1 The total move time is given by TM TM 50 250 250 125 675 msec 2 2 2 The acceleration of the second blended move could only be extended up to a certain limit 2 TM TA Two blended moves 350000 300000 250000 200000 150000 100000 50000 50000 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 Time sec PMAC looks two moves ahead of actual move execution to perform its acceleration limit and can recalculate these two moves to keep the accelerations under the Ix17 limit However there are cases where more than two moves some much more than two would have to be recalculated in order to keep the accelerations under the limit In these cases PMAC will limit the accelerations as much as it can but because the earlier moves have already been executed they cannot be undone and therefore the acceleration limit will be exceeded 3 When performing a blended move that involve a change of direction the end point might no be reached Example TA100 TM250 T 100 10 X10 This would reach only to position 10 9 4 250 X 10 Bact and Farh TA end position 4 TM equal to Time sec In order to reach the desired position since the move involves a change in direction and stop simply pl
122. 210 hexadecimal 2 The first digit of 2 is binary 0010 This sets E91 ON E92 ON E66 OFF E67 ON 3 The second digit of E is binary 0001 This sets E68 ON E69 ON E70 ON E71 OFF Example 3 You wish to set up the card to be at base address 544 decimal on the PC expansion bus 1 544 decimal is equal to 220 hexadecimal 2 The first digit of 2 is binary 0010 This sets E91 ON E92 ON E66 OFF E67 ON 3 The second digit of E is binary 0010 This sets E68 ON E69 ON E70 OFF E71 ON E54 E55 E57 E59 E61 63 E65 Interrupt Source Control Default Configuration E54 E55 E57 E58 E59 E62 E62 E63 E65 OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF These jumpers are related to an advanced feature and should not be changed from default E76 E84 E86 Host Interrupt Signal Select Default Configuration E76 E77 E78 E79 E80 E82 E83 E84 E86 OFF OFF OFF OFF OFF OFF OFF OFF OFF OFF These jumpers are related to an advanced feature and should not be changed from default E107 E108 Serial Port Configure Default Configuration E107 E108 1 2 1 2 Both RS 232 and RS 422 serial ports are always provided standard on the Universal PMAC Lite board Jumpers E107 and E108 must be set correctly to use the port of your choice Both jumpers E107 and E108 must connect pins 1 and 2 to use the RS 232 port on the J4 connector Otherwise both jumpers E107 and E108 must connect pins 2 and 3 to use the RS 422 port on the J4A connector I O
123. 3450 commanded 2 to 29317 commanded LEARN X Y Tell PMAC to learn these positions X1 345 Y2 9317 This is the line that PMAC adds to PROG 1 move motors to new position e g 1 to 16752 cmd 2 to 34726 cmd LEARN Tell PMAC to learn positions AO BO CO UO VO WO X1 6752 Y3 4726 ZO PMAC adds positions for all axes to PROG 1 LIST Function List the contents of the currently opened buffer Scope Global Syntax LIST Remarks This command causes PMAC to report the contents of the currently opened buffer PLC PROG or ROT to the host If no buffer is open PMAC will report an error ERR003 if 16 1 or 3 Note that what is reported will not include any OPEN CLEAR or CLOSE statements since these are not program commands You can list an unopened buffer by specifying the buffer name in the list command e g LIST PROG 1 See further LIST commands below Examples OPEN PROG 1 Open buffer for entry LIST Request listing of open buffer LINEAR PMAC reports contents of open buffer F10 X20 Y20 XO YO RETURN CLOSE Close buffer Page 171 9 0 Online Commands LIST Request listing of open buffer lt BELL gt ERRO03 PMAC reports error because no open buffer 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 c
124. 5 E87 E88 Analog Circuit Isolation Control 9 E89 E90 Input Flag Supply Control 10 Clock configuration jumpers 10 E98 DAC ADC Clock Frequency Control 10 E29 E33 Phase Clock Frequency Control 10 E48 Option CPU Clock Frequency Control 10 E3 E6 Servo Clock Frequency Control 10 E34A E38 Encoder Sample Clock 11 E40 E43 Servo and Phase Clock Direction Control 11 Encoder Configuration Jumpers 11 E24 E27 Encoder Complementary Line Control 11 E22 E23 Control Panel Handwheel Enable 11 E72 E73 Control Panel Analog Input Enable 11 E74 E75 Encoder Sample Clock Output 12 Board Reset Save Jumpers 12 E39 Reset From Bus Enable 12 E50 Flash Save Enable Disable Control 12 E51 Re Initialization on Reset Control 12 E93 E94 Reset from Bus by Software Enable 12 E103 Watchdog Timer disable 13 E106 Power Up Reset Load Source 13 Communication Jumpers 13 E9 E10 E13 E14 Serial Interface Configuration Control 13 E44 E47 Serial Baud Rate Selection 13 E49 Serial Communications Parity Control 14 E66 E71 E91 E92 ISA Bus Base Address Control 14 E54 E55 E57 E59 E61 63 E65 Interrupt Source Control 16 E76 E84 E86 Host Interrupt Signal Select 16 E107 E108 Serial Port Configure 16 VO configuration jumpers 16 E1 E2 Machine Output Supply Configure 16 E7 Machine Input Source Sink Control 17 E17A E17D Amplifier Enable Polarity Control 17 E28 Following
125. 5 The name and version of the software that you are using for communicating with PMAC In most cases this will be either PEWIN or EZ PMAC Setup Software both provided by Delta Tau 6 Prepare a concise description of the problem and identify the problem as either software or hardware related For example problems with motion programs or PLC programs are software related whereas a motor that does not run properly could be a problem either software or hardware related Page 8 2 0 PMAC Jumper Configuration On the PMAC you will see many jumpers pairs of metal prongs called E points Some have been shorted together others have been left open These jumpers customize the hardware features of the board for a given application Some of these jumpers set for example the baud rate for serial communications while others determine for example the type of amplifier enable signals that PMAC can output In the following description a jumper that by default is not present or removed is indicated as OFF A jumper that is present or installed is indicated as ON For a three position jumper the proper configuration will be indicated either 1 2 2 3 or OFF For the location of each configuration jumper refer to the Universal PMAC Lite connectors and indicators section Power Supply Configuration Jumpers 1224V A V pin9 P1 Bus TBI JMACHI E85 E87 E88 Analog Circuit Isolation Control Default Configuration
126. 6 10 14 Amplifier 4 8 12 16 Z Z d d Flags 4 8 12 16 2 6 10 14 4 0 Machine Connections J8 JEQU POSITION COMPARE CONNECTOR 9 0OOoOO J8 JEQU 10 PIN CONNECTOR 100000012 Front View NON DESCRIPTION NOTES e AENAX OUTPUT AMP ENABLE Lowis TRUE 7 AENAJ OUTPUT AMPENABLE3 LOWISTRU 8 AENA4 OUTPUT AMPENABLE4 LOWISTRUE 9 Av SUPPLY POSITIVESUPPLY 5VTO 24V_ 10 AGND COMMON ANALOGGROUND This connector provides the position compare outputs and the amplifier enable outputs for the four servo interface channels The board is shipped by default with a chip in U54 of type ULN2803A or equivalent open collector driver IC It may be replaced with UDN2891A or equivalent open emitter driver E101 and E102 must be changed or a 74ACT563 or equivalent 5V CMOS driver TB1 JPWR POWER SUPPLY TB1 4 Pin Terminal Block __Edge of Board Top View PIN SYMBOL FUNCTION DESCRIPTION sees e COMMON REFERENCE VOLTAGE 5V INPUT POSITIVE SUPPLY STS ALL PMAC VOLTAGE DIGITAL CIRCUITS 3 12V INPUT POSITIVE SUPPLY VOLTAGE 4 12V INPUT NEGATIVE SUPPLY REF TO DIGITAL GND VOLTAGE This terminal block can be used to provide the input for the power supply for the circuits on the PMAC board when it is not in a bus configuration When the PMAC Lite is in a bus configuration these sup
127. 6k Digital Signal Processor 4 digital to analog converter DAC outputs 4 full encoder channels 16 General Purpose I O OPTO 22 compatible Overtravel limit home amplifier fault enable flags Display port for LCD and VFD displays e Bus RS 422 and or RS 232 Control e Stand Alone Operation Linear and Circular Interpolation 256 motion programs capacity Asynchronous PLC program capability 36 bit position range 64 billion counts 16 bit DAC Output Resolution S curve Acceleration and Deceleration Cubic Trajectory Calculations Splines Position velocity and time PVT move types Advanced PID servo motion algorithms Configuring and programming PMAC Hardware Setup On the PMAC you will see many jumpers pairs of metal prongs called E points Some have been shorted together others have been left open These jumpers customize the hardware features of the board for a given application Some of these jumpers set for example the baud rate for serial communications while others determine for example the type of amplifier enable signals that PMAC can output It is strongly recommended to check each jumper configuration before installation to the machine Details of each jumper function and setting are provided in following chapters of this manual Once PMAC jumpers are properly set it is possible to install it in the machine either in a stand alone configuration or inside the computer on the ISA bus Software Setup PMAC h
128. 7 Bit 16 Fatal Following Error This bit is 1 when any motor in the coordinate system has been killed due to exceeding its fatal following error limit Ix11 It is 0 at other times The change from 1 to 0 occurs when the offending motor is re enabled Warning Following Error This bit is 1 when any motor in the coordinate system has exceeded its warning following error limit Ix12 It stays at 1 ifa motor has been killed due to fatal following error limit It is 0 at all other times The change from 1 to 0 occurs when the offending motor s following error is reduced to under the limit or if killed on fatal following error as well when it is re enabled In Position This bit is 1 when all motors in the coordinate system are in position Five conditions must apply for all of these motors for this to be true the loops must be closed the desired velocity must be zero for all motors the coordinate system cannot be in any timed move even zero distance or DWELL all motors must have a following error smaller than their respective Ix28 in position bands and the above conditions must have been satisfied for I7 1 consecutive scans Rotary Buffer Request This bit is 1 when a rotary buffer exists for the coordinate system and enough program lines have been sent to it so that the buffer contains at least I17 lines ahead of what has been calculated Once this bit has been set to 1 it will not be set to 0 until there are less than 116 program lines
129. 9 gt X C000 19 1 M219 gt X C004 19 1 M319 gt X C008 19 1 M419 gt X C00C 19 1 M519 gt X C010 19 1 M619 gt X C014 19 1 M719 gt X C018 19 1 M819 gt X C01C 19 1 HMEL input status M120 gt X C000 20 1 M220 gt X C004 20 1 M320 gt X C008 20 1 C00C 20 1 M520 gt X C010 20 1 M620 gt X C014 20 1 M720 gt X C018 20 1 M820 gt X C01C 20 1 LIM input status M121 gt X C000 21 1 M221 gt X C004 21 1 M321 gt X C008 21 1 C00C 21 1 M521 gt X C010 21 1 M621 gt X C014 21 1 M721 gt X C018 21 1 M821 gt X C01C 21 1 LIM input status M122 gt X C000 22 1 M222 gt X C004 22 1 M322 gt X C008 22 1 C00C 22 1 M522 gt X C010 22 1 M622 gt X C014 22 1 M722 gt X C018 22 1 M822 gt X C01C 22 1 FAULT input status M123 gt X C000 23 1 M223 gt X C004 23 1 M323 gt X C008 23 1 M423 gt X C00C 23 1 M523 gt X C010 23 1 M623 gt X C014 23 1 M723 gt X C018 23 1 M823 gt X C01C 23 1 Motor Status Bits Motor 1 Motor 2 Motor 3 Motor 4 Motor 5 Motor 6 Motor 7 Motor 8 Stopped on position limit bit M130 gt Y 0814 11 1 M230 gt Y 08D4 11 1 M330 gt Y 0994 11 1 M430 gt Y 0A54 11 1 M530 gt Y 0B14 11 1 M630 gt Y 0BD4 11 1 M730 gt Y 0C94 11 1 M830 gt Y 0D54 11 1 Positive end limit set bit M131 gt X 003D 21 1 M231 gt X 0079 21 1 M331 gt X 00B5 21 1 M431 gt X 00F1 21 1 M531 gt X 012D 21 1 M631 gt X 0169 21 1 M731 gt X 01A5 21 1 M831 gt X 01E1 21 1 Negative end limit set bit M132 gt X 003D 22 1 M232 gt X 0079 22 1 M332
130. 9 E71 E91 E92 Jumpers E91 E92 E66 E67 E68 E69 E70 and E71 on the PMAC Lite determine the base address of the card in the I O space of the host PC s expansion bus Together they form a binary number that specifies the 16 consecutive addresses on the bus where the card can be found The jumpers form the base address in the following fashion Bte u 1 9 8 7 6 5 4 DecValue 2048 1024 512 256 128 64 32 16 HexValue 800 400 200 100 80 40 20 10 If a jumper is ON the value it contributes to the base address is ZERO If a jumper is OFF the value it contributes to the base address is given in the table above On the PMAC Lite the jumpers are physically arranged in the same order they are presented in the above table Page 14 2 0 PMAC Jumper Configuration From Jumper Configuration To Address To determine the address specified by a given jumper configuration use the following formula Decimal Address 2048 E91 1024 E92 512 E66 256 E67 128 E68 64 E69 32 E70 16 E71 Hexadecimal Address 800 E91 400 E92 200 E66 100 E67 80 E68 40 E69 20 E70 10 E71 In each case Exx 1 if the jumper is OFF Exx 0 if the jumper is ON Example On a PMAC card the jumpers are in the following configuration The address can be computed as Decimal Address 0 0 512 256 Hex Address 0 0 200 100 From Address T
131. 97 21 1 M481 gt Y 0A57 21 1 M581 gt Y 0B17 21 1 M681 gt Y 0BD7 21 1 M781 gt Y 0C97 21 1 M881 gt Y 0D57 21 1 Run time error bit M182 gt Y 0817 22 1 M282 gt Y 08D7 22 1 M382 gt Y 0997 22 1 M482 gt Y 0A57 22 1 M582 gt Y 0B17 22 1 M682 gt Y 0BD7 22 1 M782 gt Y 0C97 22 1 M882 gt Y 0D57 22 1 Continuous motion request M184 gt X 0818 4 1 M284 gt X 08D8 4 1 M384 gt X 0998 4 1 M484 gt X 0A58 4 1 M584 gt X 0B18 4 1 M684 gt X 0BD8 4 1 M784 gt X 0C98 4 1 M884 gt X 0D58 4 1 In position bit AND of motors M187 gt Y 0817 17 1 M287 gt Y 08D7 17 1 M387 gt Y 0997 17 1 M487 gt Y 0A57 17 1 M587 gt Y 0B17 17 1 M687 gt Y 0BD7 17 1 M787 gt Y 0C97 17 1 M887 gt Y 0D57 17 1 Warning following error bit OR M188 gt Y 0817 18 1 M288 gt Y 08D7 18 1 M388 gt Y 0997 18 1 M488 gt Y 0A57 18 1 M588 gt Y 0B17 18 1 M688 gt Y 0BD7 18 1 M788 gt Y 0C97 18 1 M888 gt Y 0D57 18 1 Fatal following error bit OR M189 gt Y 0817 19 1 M289 gt Y 08D7 19 1 M389 gt Y 0997 19 1 M489 gt Y 0A57 19 1 M589 gt Y 0B17 19 1 M689 gt Y 0BD7 19 1 M789 gt Y 0C97 19 1 M889 gt Y 0D57 19 1 Amp fault error bit OR of motors M190 gt Y 0817 20 1 M290 gt Y 08D7 20 1 M390 gt Y 0997 20 1 M490 gt Y 0A57 20 1 M590 gt Y 0B17 20 1 M690 gt Y 0BD7 20 1 M790 gt Y 0C97 20 1 M890 gt Y 0D57 20 1 Motor Axis Definition Registers Motor 1 Motor 2 Motor 3 Motor 4 Motor 5 Motor 6 Motor 7 Motor 8
132. A100 X32 Y21 TA120 X43 Y26 TA87 X50 Y30 TA62 DWELL100 RAPID X0 YO Page 240 10 Buffer Commands STOP Function Stop program execution Type Motion program PROG Syntax STOP Remarks This command suspends program execution whether started by run or step keeping the program counter pointing to the next line in the program so that execution may be resumed with a run or step command Examples A10 B10 A20 BO STOP A0 BO TA1dataj 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 Remarks 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 The units are milliseconds PMAC will round the specified value to the nearest integer number of milliseconds when executing this command no rounding is done in storing the value in the buffer Make sure the specified acceleration time TA or 2 TS is greater than zero even if you are planning to rely on the maximum acceleration rate parameters Ix17 A specified acceleration time of zero will cause a divide by zero error The minimum specified time should be TA1 TSO If the specified S curve time from
133. AC commutation then the output is the absolute value magnitude of what is calculated and the sign direction bit is output on the AENAn DIRn line ofthe set of flags pointed to by Ix25 polarity is determined by jumper E17 In this case bit 16 of Ix25 should also be set to 1 to disable the amplifier enable function for that line This magnitude and direction mode is suited for driving servo amplifiers that expect this type of input and for driving voltage to frequency V F converters such as PMAC s ACC 8D Option 2 board for running stepper motor drivers For example if you were using PMAC and an ACC 8D Option 2 to run a four axis stepper systems you would set up your variables in the following way 1102 1C003 1125 1C000 1202 1C002 1225 1C004 1302 1C00B 1325 1C008 1402 1C00A 1425 1C00C Direct Microstep Output If bit 16 of Ix02 value 65536 equals 1 and Ix01 1 PMAC commutation then the output is set is set up for direct microstepping phase control using PMAC s commutation algorithms Just as in the closed loop commutation case see above bits 0 15 should point to the low address of an adjacent pair of DACs X register Output If bit 19 of Ix02 is set to 1 the command output s is are written to the X register s of the specified address instead of the Y register s If bit 19 is at the default of 0 the command output s is are written to the normal Y register
134. Counts Motor x Abort Lim Decel Rate positive floating point 0 25 2 Counts msec Motor x Maximum Velocity positive floating point 32 Counts msec Motor x Maximum Acceleration positive floating point 0 015625 2 Counts msec Motor x Maximum Jog Acceleration positive floating point 0 015625 2 Counts msec Page 1 of 2 Appendix 2 PMAC I VARIABLE SUMMARY Motor movement I variables Range Default Units Motor x Jog Home Acceleration Time 0 8 388 607 0 so Ix21 controls msec Motor x Jog Home S Curve Time 0 8 388 607 50 msec Motor x Jog Speed positive floating point 32 Counts msec Motor x Homing Speed amp Direction floating point 32 Counts msec Motor x Flag Address PMAC X addresses see Ix25 table Extended legal PMAC X addresses Motor x Home Offset 8 388 608 8 388 607 0 1 16 Count Motor x Position Rollover Range 0 8 388 607 0 Counts Motor x In Position Band 0 8 388 607 160 210 counts 1 16 Count Motor x DAC Ist Phase Bias Servo Control I Variables 32 768 32 767 Range 0 Default DAC Bits Units Motor x Proportional Gain 8 388 608 8 388 607 2000 Ix08 2 DAC bits Encoder count Motor x Derivative Gain 8 388 608 8 388 607 1280 Ix30 Ix09 2 DAC bits Cou
135. E74 E75 Encoder Sample Clock Output Default Configuration E74 E75 OFF OFF These jumpers are related to an advanced feature and should not be changed from default Board Reset Save Jumpers E39 Reset From Bus Enable Default Configuration E39 OFF This jumper is related to an advanced feature and should not be changed from default E50 Flash Save Enable Disable Control Default Configuration E50 ON If E50 is ON default the active software configuration of the PMAC can be stored to non volatile flash memory with the SAVE command If the jumper on E50 is removed this SAVE function is disabled and the contents of the flash memory cannot be changed E51 Re Initialization on Reset Control Default Configuration E51 OFF If E51 is OFF default PMAC executes a normal reset loading active memory from the last saved configuration in non volatile flash memory If E51 is ON PMAC re initializes on reset loading active memory with the factory default values If communications with PMAC cannot be established try installing E51 and power PMAC up again yy If installing E51 enables communications type SAVE on the terminal window and remove the E51 jumper All memory contents will be cleared to factory defaults E93 E94 Reset from Bus by Software Enable Default Configuration E93 E94 OFF OFF These jumpers are relat
136. EAD except N or O which are reserved for line labels and should only be at the beginning of a line anyway Ifa 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 If there are remaining letter values on the calling line that are not read those will be executed according to their normal function after the return from the subroutine Examples In standard machine tool code a two second DWELL would be commanded in the program as a G04 X2000 for instance In PMAC a G04 is interpreted as a CALL to label N04000 of PROG 1000 so to implement this function properly PROG 1000 would contain the following code N04000 READ X DWELL Q124 RETURN Also in standard machine tool code the value assigned to the current position of the axis may be changed with the G92 code followed by the letters and the new assigned values of any axes e g G92 X20 Y30 It is important only to assign new values to axes specified in this particular G92 command so the PMAC subroutine implementing G92 with the PSET command must check to see if that particular axis is specified N92000 READ X Y IF Q100 amp 800000 gt 0 PSET X Q124 IF Q100 amp 1000000 gt 0 PSET Y O125 IF Q100 amp 2000000 gt 0 PSET Z Q126 RETURN RETURN Function Return From Subroutine Jump End Main Program Type Motion program PROG only Syntax
137. EAR command takes the program out of any of the other move modes CIRCLE PVT RAPID SPLINE A command for any of these other move modes takes the program out of LINEAR mode Examples LINEAR ABS CIRCLE X10 Y20 I5 LINEAR X10 YO OPEN PROG 1000 CLEAR N1000 LINEAR RETURN M constant expression Function Set M Variable Value 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 expression is a mathematical expression representing the value to be assigned to this M variable Remarks This command sets the value of the specified M variable to that of the expression on the right side of the equals sign 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 If you wish the actual assignment of the value to the variable to be synchronous with the beginning of the next move use the synchronous M variable assignment command M constant expression instead Page 226 10 Buffer Commands Examples MI 1 M102 00FF M161 P161 1108 32 M20 M20 amp 0F M constant expression Function Synchronous
138. Error Watchdog Timer Signal Control 17 E100 Auxiliary Signals Supply Control 17 E101 E102 Auxiliary Signals Output voltage configure 18 E109 Display Port Configuration 18 E110 Expansion Port Configuration 18 Reserved configuration jumpers 18 EO Reserved for future use 18 3 0 WIRING GUIDELINES 19 Ground loops 19 Star ground connection 19 Opto isolation circuits 20 EMI Electromagnetic Interference 20 Twisted wires 20 Shielded cable 21 Wires separation and length 21 Flat cable shielding 21 Basic rules for proper wiring 22 4 0 MACHINE CONNECTIONS 23 Power Supplies 23 Digital Power Supply 23 Analog Power Supply 23 Flags Power Supply optional 24 Overtravel limits and Home switches 24 Types of overtravel limits 24 Home switches 24 Motor signals connections 25 Incremental Encoder Connection 25 DAC Output signals 25 Amplifier enable signal AENAx DIRn 26 Amplifier fault signal FAULTn 27 General Purpose Digital Inputs and Outputs JOPTO Port 28 J5 JOPTO I O Port Connector 29 Serial Connections 30 J4 JRS232 SERIAL PORT CONNECTOR 31 J4A JRS422 Serial Port Connector 32 Machine Connections Example 33 ACC 8P ACC 8D Breakout Board 34 J8 JEQU POSITION COMPARE CONNECTOR 36 TB1 JPWR POWER SUPPLY 36 5 0 PROGRAMMING PMAC 37 Moving a motor Jog commands and Motion Programs 37 Axes and Coordinate Systems 38 Online Commands 38 Buffered Program C
139. First Phase DAC Bias Servo Control I Variables Ix30 Ix31 1x32 1x33 1x34 1x35 1x68 1x69 Ix80 Motor x PID Proportional Gain Motor x PID Derivative Gain Motor x PID Velocity Feedforward Gain Motor x PID Integral Gain Motor x PID Integration Mode Motor x PID Acceleration Feedforward Gain Motor x Friction Feedforward Motor x Output Command DAC Limit Motor x Power Up Mode COORDINATE SYSTEM I VARIABLES Ix87 Ix88 Ix89 1x90 Ix91 1x92 1x94 1x95 1x96 Coordinate System x Default Program Acceleration Time Coordinate System x Default Program S Curve Time Coordinate System x Default Program Feedrate Move Time Coordinate System x Feedrate Time Units Coordinate System x Default Working Program Number Coordinate System x Move Blend Disable Coordinate System x Time Base Slew Rate and Limit Coordinate System x Feed Hold Deceleration Rate Coordinate System x Circle Error Limit ENCODER FLAG SETUP I VARIABLES 1900 1905 1975 Encoder n Decode Control Encoder I Variable 0 1902 1907 1977 Encoder n Position Capture Control Encoder I Variable 2 1903 1908 978 Encoder n Flag Select Control Encoder I Variable 3 100 101 101 102 102 103 104 105 105 105 105 106 106 109 109 110 110 111 111 112 112 112 113 113 114 114 115 115 115 116 117 117 118 118 118 119 119 120 120 121
140. Flags ACC 8D or ACC 8P PMAC installed in a desktop PC ACC 8D Note for this configuration jumpers E85 E87 E88 E89 and E90 are left at the default settings Page 33 4 0 Machine Connections ACC 8P ACC 8D Breakout Board ww 909p ut OL ww 90 Ul OL PMAC ACC 8D TERMINAL BLOCK BOARD RESERVED FOR OPTION 1 eee J3B eooon e00900000000000000000000000000000 JPMAC J4 J2A XIIA 09000000000000000000000000000000 VMEBUS m eec OB eececc0c00000000000000000000000R JPMAC 0606000000000000000000000000000 PCBUS 7 87 1n 200 00 ww 7g 1 2 ut Lgz Page 34 4 0 Machine Connections AGND INPU A 15V OPT V INPU A 15V INPU FEFCO CHB CHC Digital Power Hid INPU Encoder Inputs Encoder Inputs 3 7 11 15 Y G INPUTS L5 ew cowwon ao COMMON NNI UAN OUTPUT pee i INR T INR INR T PUT CH INPUT CHC INPUT Z 45 5 Amplifier 1 5 9 13 Amplifier 3 7 11 15 S S 4 4 4 Flags 3 7 11 15 Z J Cc Encoder Inputs 2 6 10 14 Encoder Inputs 4 8 12 16 OUTPUT ow L5 p ewe conto Lee coun Lp mur o wer INPUT s aow wur Te om T INPOT C em srr Cm p ces vr 7 aow PUT 5 Ap mr Page 35 2
141. Global Syntax DATE DAT Remarks This command causes PMAC to report the revision date of the PROM firmware revision it is using The date is reported in the American style mm dd yy month day year Example DATE Ask PMAC for firmware revision date 07 22 92 PMAC responds with July 22 1992 Page 154 9 0 Online Commands DEFINE TBUF Function Create a buffer for axis transformation matrices Scope Global Syntax 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 ofthe X Y and Z axes of any coordinate system A coordinate system selects which matrix to use with the TSELn command where n is an integer from 1 to the number of matrices created here PMAC will reject this command reporting an ERR003 if 1671 or 3 if any ROTARYor GATHER buffer exists Any of these buffers must be DELETEd first The number of long words of unused buffer memory can be found by issuing the SIZE command Each defined matrix takes 21 words of memory Example DELETE GATHER DEF TBUF 1 DEFINE TBUF 8 DELETE GATHER Function Erase the data gather buffer Scope Global Syntax DELETE GATHER DEL GAT Remarks This command causes the data gatheri
142. High true FLAGn Low true CHCn 2 amp 3 High true FLAGn High true CHCn 1 amp 4 M Low true FLAGn Low true CHCn 2 amp 4y T Low true FLAGn 1903 1908 1978 Encoder n Flag Select Control Encoder I Variable 3 Range 0 3 Default 0 Units none Remarks This parameter determines which of the Flag inputs will be used for position capture if one is used see 1902 etc 0 HMFLn Home Flag n LIMn Positive Limit Signal n LIMn Negative Limit Signal n FAULTn Amplifier Fault Signal n This parameter is typically set to zero because in actual use the LIMn and FAULTn flags create other effects that usually interfere with what is trying to be accomplished by the position capture If you wish to capture on the LIMn or FAULTn flags you must either disable their normal functions with Ix25 or use a channel n where none of the flags is used for the normal axis functions The direction sense of the limit inputs is the opposite of what many people consider intuitive That is the LIMn input when taken high opened stops commanded motion in the negative direction the LIMn input when taken high stops commanded motion in the positive direction It is important to confirm the direction sense of your limit inputs in actual operation Page 122 10 0 Online Commands manual illustrates the implementation of PMAC in a typical application some
143. LOSE Even if the servo cycle counter rollovers start from zero again after the counter is saturated by subtracting into another 24 bit register we handle rollover gracefully Rollover example MO 1000 M85 16777000 M86 1216 Bit 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 15 4 13 2 1 0 MO 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0 M85 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 0 0 0 M86 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 Page 81 7 0 PLC Programs Page 82 8 0 Troubleshooting Section PMAC is a highly reliable device and has several safety mechanisms to prevent continuous damage and malfunctions When PMAC shuts down or an erratic behavior is observed the following reset procedure should be tried Resetting PMAC to factory defaults 9 IfPMAC is communicating with the host computer skip steps 2 7 on this list 10 Turn off PMAC or the host computer where PMAC is installed 11 Remove all cables connected to PMAC only leaving connected the serial port and power cables if present 12 Check that all its jumpers are at the default configuration or properly changed to accommodate the particular setup for the machine Make sure that jumper E50 is properly installed otherwise any SAVE command issued to PMAC will not have any effect 13 Place the jumper E51 in PMAC
144. MAC is installed Remove all cables connected to PMAC and only connect the serial port and power cables if necessary Check that all PMAC jumpers are at the default configuration or properly changed to accommodate the particular setup for the machine Make sure that jumper E50 is properly installed because otherwise any SAVE command issued to PMAC will not have any effect and the problem will return when E51 is removed Install jumper E51 This is a hardware re initialization jumper that takes effect on power up After power up try establishing communications again with a software package like PEWIN or EZ PMAC Setup Software provided by Delta Tau If communication gets established perform the reset procedure described in the following section Resetting PMAC to factory defaults 1 Type the following commands on the terminal window This procedure will set all PMAC variables to their default configuration and any Motion Program and PLC program will be erased from memory 7 8 SSS Global Reset PO 1023 0 Reset P variables values Q0 1023 0 Reset Q variables values MO 1023 gt MO 1023 0 Reset M variables definitions and values UNDEFINE ALL Undefine Coordinate Systems SAVE Save this initial clean configuration Ifthe re initialization E51 jumper was installed remove it at this time Restore all PMAC connections and power it up Try communications again and configure PMAC for your application It is strongly recommende
145. MAC is prepared to send its communications over the host port PC bus or STD bus or the serial port It changes from 0 to 1 when it receives an alphanumeric command over the VME bus mailbox port It changes from 1 to 0 when it receives a CTRL Z over the serial port Bits 12 14 For Internal use Tenth character returned Bit11 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 Examples E A EE OE Ask PMAC for global status words 003000400000 PMAC returns the global status words mE Lst word bit 13 Any checksum error is true EN 1st word bit 12 PROM checksum error is true 2nd word bit 23 for internal use is true RM All other bits are false Function Do a program hold permitting jogging while in hold mode Scope Coordinate system specific Syntax Remarks This command causes PMAC to do a program hold of the currently addressed coordinate system in a manner that permits jogging of the motors in the coordinate system while in hold mode provided PMAC is in a segmented move LINEAR or Page 149 9 0 Online Commands CIRCLE mode with 11370 If PMAC is in segmentation mode 113 0 or other move
146. Motor Coordinate System Modal Addressing Type PLC programs to 31 only Syntax ADDRESS constant amp constant ADR constant amp constant Page 201 10 Buffer Commands where constant is an integer constant from 1 to 8 representing the motor number or the coordinate system amp number to be addressed Remarks This statement when executed sets the motor and or coordinate system that will be addressed by this particular PLC program when it COMMANDs motor or coordinate system specific commands with no addressing in those commands The addressed coordinate system also controls which set of Q variables is accessed even for ATAN2 functions which automatically use QO This command does not affect host addressing the addressing of other PLC programs or the selection of the control panel inputs The addressing stays in effect until another ADDRESS statement supersedes it Default addressing at power on reset is 1 and amp 1 In motion programs there is no modal addressing for COMMAND statements each COMMAND statement must contain the motor or coordinate system specifier within its quotation marks A motion program automatically operates on the Q variables of the coordinate system executing the program Examples ADDRESS amp 4 ADR 2 ADDRESS amp 2 2 ADR 1 Modally address Motor 1 CMD J This will start Motor 1 jogging CMD 23 This will start Motor 2 jogging CMD J This will stop Mot
147. R mode 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 X axis Examples X10 Y20 I5 J5 X 2 P1 I P1 133 333 specifies a full circle whose center is 33 333 units in the positive X direction from the start and end point NORMAL I 1 specifiesa vector normal to the YZ plane I constant expression Function Set I Variable Value Type Motion program PROG and ROT PLC Program Syntax I constant expression where constant is an integer value from 0 to 1023 representing the I variable number expression represents the value to be assigned to the specified I variable Remarks This command sets the value of the specified I variable to that of the expression on the right side ofthe equals sign The assignment is done as the line is processed which in a motion program is usually one or two moves ahead of the move actually executing at the time because of the need to calculate ahead in the program If you desire the assignment of the I variable value to be synchronous with the beginning of the next move in the program you should assign an M variable to the register of the I variable and use a synchronous M variable assignment statement M constant expression Examples 1130 30000 1902 1 1131 P131 1000 Page 221 10 Buffer Commands IDIS constant j Function Incremental displacem
148. This rounding will change the speeds and times for the trajectory At the beginning and end of a series of splined moves PMAC automatically adds a zero distance segment of TA time for each axis and performs the spline between this segment and the adjacent one This results in an S curve acceleration to and from a stop PMAC s SPLINE2 mode is very similar to the SPLINE1 mode except that the requirement that the TA spline segment time remain constant is removed PVT Mode Moves For the user who desires more direct control over the trajectory profile PMAC offers Position Velocity Time PVT mode moves In these moves the user specifies the axis states directly at the transitions between moves unlike in blended moves This requires more calculation by the host but allows tighter control of the profile shape For each piece ofa move the user specifies the end position or distance the end velocity and the piece time PMAC is put in this mode with the program statement PVT data where data is a constant variable or expression representing the piece time in milliseconds This value should be an integer if it is not PMAC will round it to the nearest integer The piece time may be changed between pieces either with another PVT data statement or with a TA data statement The program is taken out of this mode with another move mode statement e g LINEAR RAPID CIRCLE SPLINE A PVT mode move is specified for each axis to be mo
149. U i M OUTP LOW TRUE SINKING OUTLINE CUIU HIGIETRUEGOURCING OUTPUT 3 OUTPU O OUTPU 2 E O d OUTPUT MACHINE OUTPUT6 MACHINE OU COMMON PMAC COMM MACHINE OU ND PMAC COMMO MACHINE OU GND PMAC COMMO MACHINE OU N UTPUT MMON N UT 7 N T6 N UT 5 N UT 4 N UT 3 N UT 2 N UT 1 N PUT 8 N PUT7 N PUT 6 N N N U T OUTPUT MACHINE OUTPUT N U T N N U O Q N D EOg9EGSG IEX ISE SES Zioizioz p Q e GND COMMON PMAC COMM MACHINE OU GND COMMON PMAC COMMON INPUT V POWER I O V 5V TO 24V r 5V OUT FROM PMAC 5 TO 24V OUTPUT IN FROM EXTERNAL SOURCE DIODE ISOLATION FROM PMAC GND COMMON _ PMAC COMMON E o This connector provides means for 8 general purpose inputs and 8 general purpose outputs Inputs and outputs may be configured to accept or provide either 5 volt or 24 volt signals Outputs can be made sourcing changing IC U26 to UDN2981 and jumpers E1 amp E2 to position 2 3 E7 controls whether the inputs are pulled up or down internally Outputs are rated at 100mA per channel z E 3 6 8 NE HS COA 26 28 30 33 Page 29 4 0 Machine Connections Serial Connections The PMAC Lite is provided with both RS232 and RS422 serial ports To use the RS232 port on the 10 pin J4 connector jumpers E107 and E108 must connect pins 1 and 2 To use the RS422 port on the 26
150. WELL command to regulate the execution time of the WHILE loop WHILE condition DWELL20 ENDW Examples WHILE M11 0 WAIT Pause here until Machine Input 1 set WHILE M187 0 WAIT Pause here until all axes in position M1 1 Turn on Output 1 to activate punch WHILE condition Function Conditional looping Type Motion program PROG only PLC program Syntax WHILE condition WHILE condition action where condition consists of one or more sets of expression comparator expression joined by logical operators AND or OR action is a program command Remarks This statement allows repeated execution of a statement or series of statements as long as the condition is true It is PMAC s only looping construct It can take two forms Valid in motion program only With a statement following on the same line it will repeatedly execute that statement as long as the condition is true No ENDWHILE is used to terminate the loop WHILE condition action Valid in motion and PLC programs With no statement following on the same line it will execute statements on subsequent lines down to the next ENDWHILE statement WHILE condition statement statement ss ENDWHILE Page 246 10 Buffer Commands If a WHILE loop in a motion program has no move DWELL or DELAY inside PMAC will attempt to execute the loop twice while true each real time interrupt cycle stopped from more loops only by
151. X command Bit22 Z Axis Incremental Mode This bit is 1 if this axis is in incremental mode moves specified by distance from the last programmed point It is 0 if this axis is in absolute mode moves specified by end position not distance See the INC and ABS commands Bit21 Y Axis Used in Feedrate Calculations See bit 23 description Bit20 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 Bit17 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 Bit14 V Axis Incremental Mode See bit 22 description Bit13 U Axis Used in Feedrate Calculations See bit 23 description Bit 12 U Axis Incremental Mode See bit 22 description Fourth character returned Bit11 C Axis Used in Feedrate Calculations See bit 23 description Bit 10 C Axis Incremental Mode See bit 22 description Page 143 9 0 Online Commands Bit9 B Axis Used in Feedrate Calculations See bit 23 description Bit8 B Axis Incremental Mode See bit 22 description Fifth character returned Bit7 A Axis Used in Feedrate Calculations See bit 23 description Bit6 A Axis Incremen
152. a Step command to execute only part of a program The PVT mode is the most useful for creating arbitrary trajectory profiles It provides a building block approach to putting together parabolic velocity segments to create whatever overall profile is desired The diagram PVT Segment Shapes below shows common velocity segment profiles PVT mode can create any profile that any other move mode can PVT mode provides excellent contouring capability because it takes the interpolated commanded path exactly through the programmed points It creates a path known as a Hermite Spline LINEAR and SPLINE modes are 2nd and 3rd order B splines respectively which pass to the inside of programmed points Compared to PMAC s SPLINE mode PVT produces a more accurate profile Page 73 6 0 Motion Programs Mode changer Time t in msec DUERSEEN n vel Axis Letter PVT300 V Vet Distance P in user end velocity V in 1490 units calculated user units per from this page 1190 msec t Time ve t Time t Time Time ve ve ve L Time Time vel A vel V v2 t Time Replace 1190 for the appropriate Ix90 variable according to coordinate system x Example PWT Move close delete gather undefine all 120000 amp 1 1 gt 2000X 100000 OPEN PROG 1 CLEAR INC 80000 PVT300 Time is 300 msec per section 60000 50user units 300msec 15000 ia
153. able the optional second constant must be at least as great as the first constant it represents the number of the end of the range expression contains the value to be given to the specified Q variable s Page 187 9 0 Online Commands Remarks This command causes PMAC to assign the value of the expression to the specified Q variable or range of Q variables for the addressed coordinate system If a motion program buffer is open when this command is sent to PMAC it is entered into the buffer for later execution Examples Q100 2 5 Q1 10 0 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 Addressing of the program counter is done initially using the B constant 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 16 is 1 or 3 it will report the error number The following conditions can cause PMAC to reject this command also listed are the remedies Both limits set for a motor in coordinate system ERRO10 clear limits Another move is in
154. abled 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 Page 100 6 0 I Variables A status bit for the motor and one for the coordinate system if the motor is in one are set If this coordinate system is hardware selected on JPAN with I2 0 or software addressed by the host with I2 1 the ERLD output on JPAN and the EROR input to the interrupt controller except for PMAC VME are triggered Setting Ix11 to zero disables the fatal following error limit for the motor This may be desirable during initial development work but it 1s strongly discouraged in an actual application A fatal following error limit 1s a very important protection against various types of faults such as loss of feedback that cannot be detected directly and that can cause severe damage to people and equipment The units of Ix11 are 1 16 ofa count Therefore this parameter must hold a value 16 times larger than the number of counts at which the limit will occur For example if the limit 1s to be 1000 counts Ix11 should be set to 16 000 Ix12 Motor x Warning Following Error Limit Range 0 8 388 607 Default 16000 1000 counts Units 1 16 Counts Remarks This parameter sets the
155. ace a DWELLO command between moves This command will disable blending for that particular move Page 68 TA100 TM250 X10 DWELLO X 10 6 0 Motion Programs 4 Since the value of TA determines the minimum time in which a programmed move could be executed it could limit the maximum move velocity and therefore the programmed feedrate might not be reached This is seen in triangular velocity profile moves types especially when a sequence of short distance moves is programmed Example delete gather undefine all 311 2 2000X 1190721000 OPEN PROG 1 CLEAR LINEAR Linear mode INC Incremental mode TA100 Acceleration time is 100 msec TA TSO No S curve component F40 Feedrate is 40 length_units second 3 1190 3000 X3 TM 75 msec 40 40 Since the calculated TM for the given feedrate is 75 msec and the programmed TA for this move is 100 msec the TM used will be100 msec instead This yields the following feedrate value instead of the programmed one Vel 120000 100000 100 100 second 3 1190 3000 38 units of distance Programmed feedrate Maximum feedrate reached 0 1 02 Time sec To be able to reach the desired velocity a longer move could be performed split into two sections The first move will be executed using a suitable TA to get the motor to move from rest The second move will have a lower acceleration time TA in order to decrease the move time TM and so reach the programmed f
156. ags3 for Motor 3 M333 gt X 00B5 13 1 Desired Velocity Zero bit M345 gt Y 0994 10 1 Home complete bit M350 gt D S009E Present Desired Velocity ae P C program to execute routine eeeeceeeceereeeeieierer OPEN PLC 12 CLEAR IF M320 1 Already in trigger I323 10 Home speed 10 cts msec positive direction I326 1600 Home offset 100 counts to make sure clear I912 11 Capture on falling flag and rising index I913 0 Use HMFL3 as flag CMD 3HM Home out of switch WHILE M345 1 Waits for Home Search to start ENDWHILE WHILE M333 0 Waits for Home motion to complete ENDWHILE ENDIF I323 10 Home speed 10 cts msec negative direction I326z0 No home offset 1912 3 Capture on rising flag and rising index 1913 20 Use HMFL3 as flag CMD 3HM Do actual homing move WHILE M345 1 Waits for Home Search to start ENDWHILE Page 57 5 0 Programming PMAC WHILE M333 0 Waits for Home motion to complete ENDWHILE DIS PLC12 Disables PLC once Home is found CLOSE End of program Command and Send statements Using the COMMAND or CMD statement online commands could be issued from a PLC or Motion program having the same result as if they were issued from a host computer or a terminal window Certain online commands might not be valid when issued from a running program For example a Jog command to a motor part of a coordinate system running a motion program will be invalid It is a good idea to have I6 no
157. alues and axis definitions are not affected by this command They can be cleared by separate commands e g M0 1023 gt PO 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 Regular backup of parameters and programs to the disk of a host computer is strongly encouraged so this type of recovery is possible The PMAC Executive program has Save Full PMAC Configuration and Restore Full PMAC Configuration functions to make this process easy With jumper E51 in non default state ON for PMAC PC Lite VME OFF for PMAC STD A PMAC with the Option CPU section option 4A 5A or 5B enters a special re initialization mode called bootstrap mode when this command is given This mode permits the downloading of new firmware see PMAC PROM SOFTWARE UPDATE LISTING for details of this mode In this mode there are very few command options To bypass the download operation in this mode send a CONTROL R gt character to PMAC This puts PMAC in the normal operational mode with the existing firmware Factory default values for I variables conversion table settings and bus addresses for DPRAM and VME are copied from the firmware section of flash memory into active memory The saved values of these values are not used but they are still kept in the user section of flash memory Examples I130 60000 Set l
158. am that allows the flow of execution to jump to that line with a GOTO GOSUB CALL G M T or D statement or a B command A line only needs a label if the user wishes to be able 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 There is always an implied NO at the beginning of every motion program Putting an explicit NO at the beginning may be useful for people reading the program Putting an NO anywhere else in the program is useless and may confuse people reading the program Examples NI N65537 X1000 NORMAL Function Define Normal Vector to Plane of Circular Interpolation and Cutter Radius Compensation Type Motion program PROG and ROT Syntax 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 data is a constant or expression representing the magnitude of the particular vector component Remarks This statement defines the orientation of the plane in XYZ space in which circular interpolation and cutter radius compensation will take place by setting the normal perpendicular vector to that plane Page 229 10 Buffer Commands The vector components that can be specified are I X axis direction
159. and accurate delay less than 100 nsec This means that the capture is fully accurate regardless of motor speed so there is no need to slow down the homing move to get an accurate capture Homing Search Move Trajectory Vel A Trigger Home Complete 1 Occurs x p Home Search in Progress 0 Home Complete 0 4 Home Search Y Y In Mem Net distance from trigger position 1x26 4 i Y si Time gt x21 M gt 1x21 1x21 x K Ix20 neg Desired Velocity Zero 1 In Position 1 when FE in range Note Rate of acceleration limited by Ix19 can override Ix21 Ix21 Ix21 Ix20 and Ix21 mein Ix20 Specify Flag Set In the basic setup of the motor Ix25 specifies which set of flags associated with one of the encoder counters is used for that motor It is important that the flag number match the position encoder number for the motor e g if you use ENCI as your position loop feedback you should use Flags HMFL1 LIM1 FAULT for your flags and CHC1 as your encoder index channel in order to make use of PMAC s accurate hardware position capture feature Software Capture Option If you are not using quadrature encoder feedback for your position loop but still need to do a homing search move you must set bit 16 of the position loop feedback address parameter Ix03 to 1 to tell PMAC that it cannot use the hardware capture feature so it must use a software capture technique For exampl
160. as a large set of Initialization parameters I variables that determine the personality of the card for a specific application Many of these are used to configure a motor properly Once set up these variables may be stored in non volatile EAROM memory using the SAVE command so the card is always configured properly PMAC loads the EAROM I variable values into RAM on power up E The EZ PMAC Setup Software provides dedicated screens as well as a terminal window for m configuring each I variable In a terminal window the value of any I variable may be queried simply by typing in the name of the I variable For instance typing I900 lt CR gt causes the value of the 1900 to be returned The value may be changed by typing in the name an equals sign and the new value e g 1900 3 lt CR gt Remember that if you change any I variables during this setup you must use the SAVE command before you power down or reset the card or you will lose the changes that you have made Page 2 1 0 Introduction Programming PMAC Buffered commands for Motion programs or PLC programs are entered in any text file and then downloaded to PMAC with the EZ PMAC Setup Software or equivalent software A different set of commands the online commands allow to immediately jog motors change variables report variables values start and stop programs query for status information and even write short motion and PLC programs from the terminal window Onc
161. asing search error If Ix80 is 1 or 3 and the motor is disabled right after the power up reset cycle the motor is either being killed by an automatic PMAC safety feature fatal following error amplifier fault or phasing search error or by a kill command from a PLC program COORDINATE SYSTEM I VARIABLES Ix87 Coordinate System x Default Program Acceleration Time Range 0 8 388 607 Default 0 so Ix88 controls Units msec Remarks This parameter sets the default time for commanded acceleration for programmed blended LINEAR and CIRCLE mode moves in coordinate system x It also provides the default segment time for SPLINE mode moves The first use ofa TA statement in a program overrides this value Page 115 6 0 I Variables Even though this parameter makes is possible not to specify acceleration time in the motion program you are strongly encouraged to use TA in the program and not rely on this parameter unless you must keep to a syntax standard that does not support this e g RS 274 G Codes Specifying acceleration time in the program along with speed and move modes makes it much easier for later debugging If the specified S curve time see Ix88 below is greater than half the specified acceleration time the time used for commanded acceleration in blended moves will be twice the specified S curve time The acceleration time is also the minimum time for a blended move if the distance on a feedrate spec
162. ate system x The first use of an F or TM statement in a motion program overrides this value The velocity units are defined by the position and time units as defined by axis definition statements and Ix90 After power up reset the coordinate system is in feedrate mode not move time mode You are strongly encouraged not to rely on this parameter and to declare your feedrate in the program This will keep your move parameters with your move commands lessening the chances of future errors and making debugging easier When polled Ix89 will report the value from the most recently executed F or TM command in that coordinate system Ix90 Coordinate System x Feedrate Time Units Range positive floating point Default 1000 0 velocity time units are seconds Units msec Remarks This parameter defines the time units used in commanded velocities feedrates in motion programs executed by coordinate system x Velocity units are comprised of length units divided by time units The length units are determined in the axis definition statements for the coordinate system Ix90 sets the time units Ix90 itself has units of milliseconds so if Ix90 is 60 000 the time units are 60 000 milliseconds or minutes The default value of Ix90 is 1000 msec specifying velocity time units of seconds This affects two type of motion program values F values feedrate for LINEAR and CIRCLE mode moves and the velocities in the actual move commands for PVT mode
163. atement It consists of one or more groupings of an axis label and its associated value The value for an axis is scaled units determined by the axis definition statement it represents a position if the axis is in absolute ABS mode or a distance if the axis is in incremental INC mode The order in which the axes are specified does not matter This command tells the axes where to move it does not tell them how to move there Other program commands and parameters define how these must be set up ahead of time The type of motion a given motion command cause is dependent on the mode of motion and the state of the system at the beginning of the move Examples X1000 X P1 P2 Y Q100 500 Z35 C P100 X1000 Y1000 A P1 B P2 C P3 X Q1 SIN Q2 Q3 U500 axis data data axis data data Function X Position and Velocity Move Specification Type Motion program PROG and ROT Syntax axis data data axis data data where axis is the character specifying which axis X Y Z A B C U V W Page 197 10 Buffer Commands data is a constant no parentheses or an expression in parentheses representing the end position or distance data represents the ending velocity axis data data is the optional specification of simultaneous movement for more axes Remarks In the case of PVT position velocity time motion mode both the ending position and velocity are specifi
164. ation file both in the host computer and in a floppy disk stored in a safe place This file must be downloaded and a SAVE command must be issued to PMAC The watchdog timer red LED The PMAC motion control board has an on board watchdog timer sometimes called a dead man timer or a get lost timer circuit whose Job it is to detect a number of conditions that could result in dangerous malfunction and shut down the card to prevent a malfunction The philosophy behind the use of this circuit is that it is safer to have the system not operate at all than to have it operate improperly Because the watchdog timer wants to fail and many components of the board both hardware and software must be working properly to keep it from failing it may not be immediately obvious what the cause of a watchdog timer failure is The hardware circuit for the watchdog timer requires that two basic conditions be met to keep it from tripping First it must see a DC voltage greater than approximately 4 75 V Ifthe supply voltage is below this value the circuit s relay will trip This prevents corruption of registers due to insufficient voltage The second necessary condition is that the timer must see a square wave input provided by the PMAC software of a frequency greater than approximately 25 Hz If the card for whatever reason due either to hardware or software problems cannot set and clear this bit repeatedly at this frequency or higher the circuit s r
165. ault Configuration E40 E41 E42 E43 ON ON ON ON These jumpers are related to an advanced feature and should not be changed from default Encoder Configuration Jumpers E24 E27 Encoder Complementary Line Control Default Configuration E24 E25 E26 E27 1 2 1 2 1 2 1 2 These jumpers one per encoder control the voltage to which the complementary channels A B and C are pulled The default setting for each jumper connecting pins 1 and 2 ties the complementary lines to 2 5V This setting is required for single ended encoders and is best if the channel is left unconnected If encoders with differential line drivers are used the setting of these jumpers does not matter Changing the jumpers to connect pins 2 and 3 ties the complementary lines to 5V This setting is used for now obsolete complementary open collector encoders or if external exclusive or loss of encoder circuitry is used The following table shows which jumper affects which encoder channel E27 E22 E23 Control Panel Handwheel Enable Default Configuration E22 E23 OFF OFF These jumpers are related to an advanced feature and should not be changed from default E72 E73 Control Panel Analog Input Enable Default Configuration E72 E73 OFF OFF These jumpers are related to an advanced feature and should not be changed from default Page 11 2 0 PMAC Jumper Configuration
166. ave menus that allow you to tell the PC where to expect to find the PMAC and how to communicate with it at that location If you tell it to look for PMAC on the bus you must also tell it PMAC s base address on the bus this was set up with jumpers on PMAC If you tell it to look for PMAC on a COM port you must tell it the baud rate this was set up with jumpers or switches on the PMAC Once you have told the program where and how to communicate with PMAC it will attempt to find PMAC at that address by sending a query command and waiting for the response If it gets the expected type of response it will report that it has found PMAC and you will be able to proceed If it does not get the expected type of response after several attempts it will report that it has not found PMAC check the following General 1 Is the green LED power indicator on PMAC s CPU board ON as it should be If it is not find out why PMAC is not getting a 5V voltage supply 2 Is the red LED watchdog timer indicator on PMAC s CPU board OFF as it should be Ifit is ON make sure PMAC is getting very close to 5V supply at less than 4 75V the watchdog timer will trip shutting down the card The voltage can be probed at pins 1 and 3 of the JMACH connector If the voltage is satisfactory inspect PMAC to see that all inter board connections and all socketed ICs are well seated If you cannot get the card to run with the red LED off contact the factory Bus Co
167. axis target position engineering units M165 gt L 081F M265 gt L 0820 M365 gt L 0821 M465 gt L 0819 M565 gt L 081A M665 gt L 081B M765 gt L 081C M865 gt L 081D Actual velocity 1 Ix09 32 cts cyc M166 gt X 0033 0 24 S M266 gt X 006F 0 24 S M366 gt X 00AB 0 24 S M466 gt X 00E7 0 24 S M566 gt X 0123 0 24 S M666 gt X 015F 0 24 S M766 gt X 019B 0 24 S M866 gt X 01D7 0 24 S Present master handwheel pos 1 Ix07 32 cts M167 gt D 002D M267 gt D 0069 M367 gt D 00A5 M467 gt D 00E1 M567 gt D 011D M667 gt D 0159 M767 gt D 0195 M867 gt D 01D1 Filter Output DAC bits M168 gt X 0045 8 16 S M268 gt X 0081 8 16 S M368 gt X 00BD 8 16 S M468 gt X 00F9 8 16 S M568 gt X 0135 8 16 S M668 gt X 0171 8 16 S M768 gt X 01AD 8 16 S M868 gt X 01E9 8 16 S Compensation correction M169 gt D 0046 M269 gt D 0082 M369 gt D 00BE M469 gt D 00FA M569 gt D 0136 M669 gt D 0172 M769 gt D 01AE M869 gt D 01EA Present phase pos includes fraction in Y register M170 gt D 0041 M270 gt D 007D M370 gt D 00B9 M470 gt D 00F5 M570 gt D 0131 M670 gt D 016D M770 gt D 01A9 M870 gt D 01E5 Present phase position counts Ix70 M171 2X 0041 0 24 S M271 gt X 007D 0 24 S M371 gt X 00B9 0 24 S M471 gt X 00F5 0 24 S M571 gt X 0131 0 24 S M671 gt X 016D 0 24 S M771 gt X 01A9 0 24 S M871
168. axis to coast into a hard stop Do not set this parameter to zero or the motor will continue indefinitely after an abort or limit Example Suppose your motor had 125 encoder lines 500 counts per millimeter and you wished it to decelerate at 4000 mm sec You would set Ix15 to 4000 mm sec2 500 cts mm sec2 1 000 000 msec 2 cts msec Page 102 6 0 I Variables Ix16 Motor x Maximum Permitted Motor Program Velocity Range positive floating point Default 32 0 Units Counts msec Remarks This parameter sets a limit to the allowed velocity for LINEAR mode programmed moves for motor x provided 113 equals zero no move segmentation If a blended move command in a motion program requests a higher velocity of this motor all motors in the coordinate system are slowed down proportionately so that motor x will not exceed this parameter yet the path will not be changed This limit does not affect transition point circular or splined moves The calculation does not take into account any feedrate override value other than 100 If PMAC s circular interpolation function is used at all then 113 must be greater than zero and Ix16 will not be active as a velocity limit This parameter also sets the speed of a programmed RAPID mode move for the motor provided that variable I50 1s set to 1 if 150 is set to 0 jog speed parameter Ix22 is used instead This happens regardless of the setting of 113 Ix17 Motor x Maximum Pe
169. boards like the ACC 34 into its image variables This way PLCs 3 to 30 could use the input information writing the necessary output changes to the outputs image variables PLC3 to PLC30 PLC programs are particularly useful for monitoring analog and digital inputs setting outputs sending messages monitoring motion parameters issuing commands as if from a host changing gains and starting and stopping moves By their complete access to PMAC variables and I O and their asynchronous nature they become very powerful adjuncts to the motion control programs PLC3lt this is the last executed PLC in the sequence from 1 to 31 PLC31 is then recommended for copying the output image variable changed in lower number PLCs executed previously into the actual outputs of an I O expansion board like for example the ACC 34A Page 77 7 0 PLC Programs Entering a PLC Program PLCs are programmed in the same way as motion programs are in a text editor window for later downloading to PMAC Before start writing the PLC it is good practice to make sure that memory has not been tied up in data gathering or program trace buffers by issuing DELETE GATHER and DELETE TRACE commands Open the buffer for entry with the OPEN PLC n statement where n is the buffer number Next if there is anything currently in the buffer that should not be kept it should be emptied with the CLEAR statement PLC buffers may not be edited on the PMAC its
170. both can be done but the techniques are different Level Triggered Conditions A branch controlled by a level triggered condition is easier to implement Taking our incrementing variable example and making the counting dependent on an input assigned to variable M11 we have IF M11 1 P1 P1 1 ENDIF As long as the input is true P1 will increment several hundred times per second When the input goes false P1 will stop incrementing Edge Triggered Conditions Suppose instead that you only want to increment P1 once for each time M11 goes true triggering on the rising edge of M11 sometimes called a one shot or latched To do this we must get a little more sophisticated We need a compound condition to trigger the action then as part of the action we set one of the conditions false so the action will not occur on the next PLC scan The easiest way to do this is through the use of a shadow variable which will follow the input variable value Action is only taken when the shadow variable does not match the input variable Our code could become IF M11 1 IF P11 0 P1 P1 1 P11 1 ENDIF ELSE P11 0 ENDIF Notice that we had to make sure that P11 could follow M11 both up and down We set P11 to 0 in a level triggered mode we could have done this edge triggered as well but it does not matter as far as the final outcome of the routine is concerned it is about even in calculation time and it saves program lines WHILE Loop
171. bserving the programmed path more clearly it will demand less calculation time from PMAC and it will prevent damages due to potentially wrong acceleration and or feedrate parameters 10 A motion program could be stopped by sending a amp 1a or for simplicity a CTRL A command which will stop any motion taking place in PMAC 11 Ifthe motion of any axis becomes uncontrollable and is desired to be stopped a CTRL K command could be issued killing all the motors in PMAC disabling the amplifier enable line if connected However the motor will come to a stop in an uncontrollable way and might proceed to move due to its own inertia 12 A motion program could also be stop by issuing a CTRL Q command The last programmed moves in the buffer will be completed before the program quits execution It could be resumed by issuing an R command alone without first pointing to the beginning of the buffer by the B command Subroutines and Subprograms It is possible to create subroutines and subprograms in PMAC motion programs to create well structured modular programs with re usable subroutines The GOSUBx command in a motion program causes a jump to line label Nx ofthe same motion program Program execution will jump back to the command immediately following the GOSUB when a RETURN command is encountered This creates a subroutine The CALLx command in a motion program causes a jump to PROG x with a jump back to the command immediately fol
172. c Syntax Q Remarks This causes the currently addressed coordinate system to cease execution of the program at the end of the currently executing move or the next move if that has already been calculated The program counter is set to the next line in the program so execution may be resumed at that point with an R or S command Compare this to the similar command which always stops at the end of the currently executing move Page 186 9 0 Online Commands Examples B10R Pointto beginning of PROG 10 and run Q Quit execution R Resume execution Q Quit execution again S Resume execution for a single move Q constant Function Report Q Variable Value Scope Coordinate system specific Syntax Q constant constant where constant is an integer from 0 to 1023 representing the number of the Q variable the optional second constant must be at least as great as the first constant it represents the number of the end of the range Remarks This command causes PMAC to report back the present value of the specified Q variable or range of Q variables for the addressed coordinate system Examples Q10 35 Q255 3 4578 Q101 103 0 98 5 0 333333333 Q constant 1expression Function Q Variable Value Assignment Scope Coordinate system specific Syntax Q constant constant expression where constant is an integer from 0 to 1023 representing the number of the Q vari
173. c damper The higher Ix31 is the heavier the damping effect is If the motor is driving a properly tuned tachometer loop velocity amplifier the amplifier will provide sufficient damping and Ix31 should be set to zero If the motor is driving a current loop torque amplifier or if PMAC is commutating the motor the amplifier will provide no damping and Ix31 must be greater than zero to provide damping for stability On a typical system with a current loop amplifier and PMAC s default servo update time 440 usec an Ix31 value of 2000 to 3000 will provide a critically damped step response If the servo update time is changed Ix31 must be changed proportionately in the opposite direction to keep the same damping effect For instance if the servo update time is cut in half from 440 usec to 220 usec Ix31 must be doubled to keep the same effect 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 Ix32 Motor x PID Velocity Feedforward Gain Range 0 8 388 607 Default 1280 Units Ix30 1x08 226 DAC bits counts cycle Remarks This term 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 If the motor is driving a current loop torque amplifier
174. capability of seeing what arguments have actually been passed The bits of Q100 for the coordinate system are used to note whether arguments have been passed successfully bit 0 is 1 if an A argument has been passed bit 1 is 1 ifa B argument has been passed and so on with bit 25 set to 1 if a Z argument has been passed The corresponding bit for any argument not passed in the latest subroutine or subprogram call is set to 0 Example close delete gather undefine all 1 gt 2000X open progl clear LINEAR INC TA100 TSO F50 Mode and timing parameters gosub 100 H10 Subroutine call passing parameter H with value 10 return End of the main program section execution ends n100 Subroutines section First subroutine labeled 100 read h Read the H parameter value passed IF Q100 amp 80 gt 0 If the H parameter has been passed X Q108 Use the H parameter value contained in Q108 endif return End of the subroutine labeled 100 close End of the motion program code How PMAC Executes a Motion Program Basically a PMAC program exists to pass data to the trajectory generator routines that compute the series of commanded positions for the motors every servo cycle The motion program must be working ahead of the actual commanded move to keep the trajectory generators fed with data PMAC processes program lines either zero one or two moves including DWELLs and DELAYs ahead Calculating one move ahead is necessary in orde
175. changes Parallel fast communications to PMAC CPU Not opto isolated easily connected to Opto 22 PB16 or similar modules through ACC 21F cable Jumper E7 controls the configuration of the eight inputs If it connects pins 1 and 2 the default setting the inputs are biased to 5V for the OFF state and they must be pulled low for the ON state If E7 connects pins 2 and 3 the inputs are biased to ground for the OFF state and must be pulled high for the ON state In either case a high voltage 1s interpreted as a 0 by the PMAC software and a low voltage is interpreted as a 1 PMAC is shipped standard with a ULN2803A sinking open collector output IC for the eight outputs These outputs can sink up to 100 mA but must have a pull up resistor to go high Do not connect these outputs directly to the supply voltage or damage to the PMAC will result from excessive current draw The user can provide a high side voltage 5 to 24V into Pin 33 of the JOPTO connector and allow this to pull up the outputs by connecting pins 1 and 2 of Jumper E1 Jumper E2 must also connect pins 1 and 2 for a ULN2803A sinking output It is possible for these outputs to be sourcing drivers by substituting a UDN2981A IC for the ULN2803A This U26 IC is socketed and so may easily be replaced For this driver pull down resistors should be used With a UDN2981A driver IC Jumper E1 must connect pins 2 and 3 and Jumper E2 must connect pins 2 and 3 The jump
176. check for serial parity framing error noise on the serial cable ERROO5 Command not allowed unless buffer is open Should open a buffer first Should allow more room for buffer DELETE or CLEAR other buffers ERRO07 Buffer already in use Should CLOSE currently open buffer first ERROO8 MACRO Link Error Register X 0798 holds the error value Program structural error e g ENDIF without d eg Should correct structure of program ERROO6 No room in buffer for command ERR010 Should correct or disable limits ERROLI ERR012 ERR013 ERR014 No motors in the coordinate system Should use B command first or clear out scrambled buffers Running improperly structured program e g ERR016 missing ENDWHILE Should correct structure of program Motor s in C S not at halted position to restart Should move motor s back to halted position ERR017 after or command with J I7 In Position Number of Cycles ERRO15 Not pointing to valid program buffer Range 0 255 Default 0 Units Background computation cycles minus one Remarks This parameter permits the user to define the number of consecutive scans that PMAC motors must satisfy all in position conditions before the motor in position bit is set true This permits the user to ensure that the motor is truly settled in the end position before executing the next operation on or off PMAC The number of consecutive scans required is equal to I7 1 PMAC scans for the in
177. ched to this IF statement even if you wanted to match a previous IF statement You must put a non ELSE statement in between to make the next ELSE statement match a previous IF statement 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 val ENDIF With a statement or statements following on that line the single statement will be executed provided that the preceding IF condition is false No ENDIF statement should be used in this case ELSE statement statement Page 213 10 Buffer Commands This single line ELSE branch form is valid only in motion programs If you try this in a PLC program PMAC will put the statement s on the next program line and expect an ENDIF to close the branch Your logic will not be as you expect it Examples This first example has multi line true and false branches It could be used in either a motion program or a PLC program IF M11 1 P1217 P2 13 ELSE P1 13 P2 17 ENDIF This second example has a multi line true branch and a single line false branch This structure could only be used in a motion program IF M11 0 X Pl DWELL 1000 ELSE DWELL 500 This example has a single line true branch and a multi line false branch This structure could
178. chronous to the motion profiles unless a double equal sign is used instead M1 1 for example will indicate PMAC that the assignment have to take place at the blending point between the previous move encountered and the next In LINEAR and CIRCLE mode moves this blending occurs V TA 2 distance ahead of the specified intermediate point where V is the commanded velocity of the axis and TA is the acceleration blending time Axis Transformation Matrices PMAC provides the capability to perform matrix transformation operations on the X Y and Z axes of a coordinate system These operations have the same mathematical functionality as the matrix forms of the axis definition statements but these can be changed on the fly in the middle of programs the axis definition statements are meant to be fixed for a particular application The matrix transformations permit translation rotation scaling mirroring and skewing of the X Y and Z axes They can be very useful for English metric conversion floating origins making duplicate mirror images repeating operations with angle offsets and more The matrices gets implemented by the use of Q variables and the commands DEFINE TBUF TSEL TINIT ADIS IDIS AROT and IROT Learning a Motion Program It is possible to have PMAC learn lines of a motion program using the on line LEARN command In this operation the axes are moved to the desired position and the command is given to PMAC PMAC then adds a co
179. cific Syntax A Remarks This command causes all axes defined in the current coordinate system to begin immediately to decelerate to a stop aborting the currently running motion program if any It also brings any disabled killed or open loop motors defined in the current coordinate system to an enabled zero velocity closed loop state If moving each motor will decelerate its commanded profile at a rate defined by its own motor I variable Ix15 If there is significant following error when the A command is issued it may take a long time for the actual motion to stop Although the command trajectory is brought to a stop at a definite rate the actual position will continue to catch up to the commanded position for a longer time Note that a multi axis system may not stay on its programmed path during this deceleration Abort commands are not meant to be recovered from gracefully If you wish to resume easily us the H Q or command instead Motion program execution may resume if a motion program was in fact aborted by issuing either an R or S command but two factors must be considered First the starting positions for calculating the next move will be the original end positions Page 150 9 0 Online Commands of the aborted move unless the PMATCH command is issued or 114 1 Second the move from the aborted position to the next move end position may not be possible or desirable The J2 command may be used to jog each moto
180. command specifies which axes are to be involved in the vector feedrate velocity calculations for upcoming feedrate specified F moves PMAC calculates the time for these moves as the vector distance square root of the sum of the squares of the axis distances of all the feedrate axes divided by the feedrate Any non feedrate axes commanded on the same line will complete in the same amount of time moving at whatever speed is necessary to cover the distance in that time Vector feedrate has obvious geometrical meaning only in a Cartesian system for which it results in constant tool speed regardless of direction but it is possible to specify for non Cartesian systems and for more than three axes If only non feedrate axes are commanded to move in a feedrate specified move PMAC will compute the vector distance and so the move time as zero and will attempt to do the move in the acceleration time TA or 2 TS possibly limited by the maximum velocity and or acceleration parameters for the motor s This will probably be much faster than intended The FRAX command without arguments causes all axes in the coordinate system to be feedrate axes in subsequent move commands The FRAX command with arguments causes the specified axes to be feedrate axes and all axes not specified to be non feedrate axes in subsequent move commands If no motion program buffer is open when this command is sent to PMAC it will be executed as an on line coordinate s
181. configuration jumpers E1 E2 Machine Output Supply Configure Default Configuration El E2 1 52 1 2 Chip U26 on the Universal PMAC Lite controls the general purpose digital outputs on connector JS JOPTO With the default sinking output driver IC ULN28034A or equivalent in U26 these jumpers must connect pins 1 and 2 to supply the IC correctly If this IC is replaced with a sourcing output driver IC UDN29814A or equivalent these jumpers must be changed to connect pins 2 and 3 to supply the new IC correctly Page 16 2 0 PMAC Jumper Configuration e The jumper setting must match the type of driver IC or damage to the IC will result E7 Machine Input Source Sink Control Default Configuration E7 1 2 With this jumper connecting pins 1 and 2 default the machine input lines on the JS JOPTO port are pulled up to 5V or the externally provided supply voltage for the port This configuration is suitable for sinking drivers If the jumper is changes to connect pins 2 and 3 these lines are pulled down to GND this configuration is suitable for sourcing drivers E17A E17D Amplifier Enable Polarity Control Default Configuration E17A E17B E17C E17D OFF OFF OFF OFF Jumpers E17A through E17D control the polarity of the amplifier enable signal for the corresponding motor 1 to 4 When the jumper is OFF default the amplifier enable line for the corresponding
182. constant and potential stability problems of integral gain If PMAC is commutating this motor this correction is applied before the commutation algorithm and so will affect the magnitude of both analog outputs This direction sensitive bias term is independent of the constant bias introduced by Ix29 and or Ix 79 Example Starting with a motor at rest if Ix68 1600 then as soon as a commanded move in the positive direction is started a value of 1600 0 5V is added to the servo loop output As soon as the commanded velocity goes negative a value of 1600 is added to the output When the commanded velocity becomes zero again no bias is added to the servo output as a result of this term 1x69 Motor x Output Command DAC Limit Range 0 32 767 Default 20 480 6 25V Units DAC bits Remarks This parameter defines the magnitude of the largest output that can be sent from the control loop Ifa larger value is calculated it is clipped to this number The analog outputs on PMAC are 16 bit DACs which map a numerical range of 32 768 to 32 767 into a voltage range of 10V to 10V relative to analog ground AGND If you are using differential outputs DAC and DAC the voltage between the two outputs is twice the voltage between an output and AGND If you wish to limit the voltage between DAC and DAC to 10V Ix69 should be 16 384 This parameter provides a torque limit in systems with current loop amplifiers or a velocit
183. counts cycle2 Remarks This term adds an amount to the control output proportional to the desired acceleration for motor x It is intended to reduce tracking error due to inertial lag Ifthe servo update time is changed Ix35 must be changed by the inverse square to keep the same effect For instance if the servo update time is cut in half from 440 usec to 220 usec Ix35 must be quadrupled to keep the same effect 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 Page 113 6 0 I Variables Ix68 Motor x Friction Feedforward Range 32 768 32 767 Default 0 Units DAC bits Remarks This parameter 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 If the commanded velocity is negative Ix68 is subtracted from the output If the commanded velocity is zero no value is added to or subtracted from the output This parameter 1s intended primarily to help overcome errors due to mechanical friction It can be thought of as a friction feedforward term Because it is a feedforward term that does not utilize any feedback information it has no direct effect on system stability It can be used to correct the error resulting from friction especially on turnaround without the time
184. ction The polarity is programmable with I variable Ix25 1125 for motor 1 and the return signal is analog ground AGND FAULTI is pin 49 With the default setup this signal must actively be pulled low for a fault condition In this setup if nothing is wired into this input PMAC will consider the motor not to be in a fault condition JMACH1 49 FAULT1 58 AGND 12 15 Volts signal E89 ON E90 1 2 JMACH1 JEQU PIN 9 Connect to the amplifier fault output g 49 FAULTI 15 24 Volts Signal E89 OFF E90 1 2 Connect to the amplifier fault output The Flags screen of the EZ PMAC Setup Software allows the setup and monitoring the state of the amplifier fault signal Page 27 4 0 Machine Connections General Purpose Digital Inputs and Outputs JOPTO Port PMAC s J5 or JOPTO connector provides eight general purpose digital inputs and eight general purpose digital outputs Each input and each output has its own corresponding ground pin in the opposite row The 34 pin connector was designed for easy interface to OPTO 22 or equivalent optically isolated I O modules The JOPTO port has these characteristics 16I O points 100 mA per channel up to 24V Hardware selectable between sinking and sourcing in groups of 8 default is all sinking inputs can be changed simply by moving a jumper sourcing outputs must be special ordered or field configured 8 inputs 8 outputs only no
185. d Fuse The 5 Volts output through the Js JOPTO connector is protected by F1 which is a 2 Amp fuse of the following type Manufacturer LittleFuse Part Number 021 273002 004 Page 4 1 0 Introduction Universal PMAC Lite dimensions 3 773 0006 SIL OSNO Seg 430 1 4 801 0 950 0 800 Page 5 9 o8eq Universal PMAC Lite Jumpers and Connectors Layout J6 J mz 1 ibe 100 9 LUFTE E E109 fu to au 23 33 33 33 2 33 ee e 33 E90 ma H E89 zw e 33 Cx CRER Hu E87 E85 E88 3 TB1 E0 El E13 F1 E26 H2 E35 E3 E45 C2 E58 C3 E70 D3 E80 F3 E90 G2 E106 A2 El El E14 Fl E27 H2 E36 F3 E46 D2 E59 C3 E71 D3 E81 F3 E91 D3 E107 Fl E2 El E17A Gl E28 E3 E37 F3 E47 D2 E61 D3 E72 E2 E82 F3 E92 D3 E108 Fl E3 F3 E17B Gl E29 F3 E38 F3 E48 DI E62 D3 E73 E2 E83 G3 E93 C3 E109 Bl E4 F3 E17C Gl E30 F3 E39 D3 E49 DI E63 D3 E74 E2 E84 G3 E94 C3 E110 C2 E5 F3 E17D Gl E31 F3 E40 C2 E50 Cl E65 D3 E75 E2 E85 G3 E98 F3 D1 Bl E6 F3 E22 Gl E32 E3 E41 C2 E51 Cl E66 D3 E76 F3 E86 G3 E100 H1 D2 Bl E7 DI E23 Gl E33 E3 E42 C2 E54 C3 E67 D3 E77 F3 E87 G3 E101 H1 D3 B1 E9 Fl E24 H2 E34A E3 E43 C2 E55 C3 E68 D3 E78 F3 E88 H3 E102 H1 D21 G1 E10 F1 E25 H2 E34 E3 E44 C2 E57 C3 E69 D3 E79 F3 E89 G2 E103 Al F1 Fl uogonpoju T Default jumper configuration 1 0 In
186. d by the host and global commands which affect the card regardless of any addressing modes A motor is addressed by a n command where n is the number of the motor with a range of 1 to 8 inclusive This motor stays the one addressed until another n is received by the card For instance the command line 1J 2J tells Motor 1 to jog in the positive direction and Motor 2 to jog in the negative direction There are only a few types of motor specific commands These include the jogging commands a homing command an open loop command and requests for motor position velocity following error and status A coordinate system is addressed by a amp n command where n 1s the number of the coordinate system with a range of 1 to 8 inclusive This coordinate system remains the one addressed until another amp n command is received by the card For instance the command line amp 1B6R amp 2B8R tells Coordinate System 1 to run Motion Program 6 and Coordinate System 2 to run Motion Program 8 There are a variety of types of coordinate system specific commands Axis definition statements act on the addressed coordinate system because motors are matched to an axis in a particular coordinate system Since it is a coordinate system that runs a motion control program all program control commands act on the addressed coordinate system Q variable assignment and query commands are also coordinate system commands because the Q variables themselves belong to a coordi
187. d control including triggered time base The SLCK frequency is determined by the crystak clock frequency and E34 E38 1902 1907 1977 Encoder n Position Capture Control Encoder I Variable 2 Range 0 15 Default 1 Units none Remarks This parameter determines which signal or combination of signals and which polarity triggers a position capture of the counter for encoder n Ifa flag input home limit or fault is used 1903 etc determines which flag Proper setup of this variable is essential for a successful home search which depends on the position capture function The following settings may be used 0 Sewsetomo OO 6 _ Rising edge of Flag n as set by FlagSelect Rising edge of CHCn AND Flag n Low true index high true Flag Rising edge of CHCn AND Flag n Low true index low true Flag Note that several of these values are redundant To do a software controlled position capture preset this parameter to 0 or 8 when the parameter is then changed to 4 or 12 the capture is triggered this is not of much practical use but can be valuable for testing the capture function Page 121 6 0 I Variables 1902 1907 1977 ENCODER POSITION CAPTURE CONTROL Used for homing and registration 1 cHCn 94 or 2 CHCn ot 2 or 6 8 FLAGn or 4 FLAGn 100r 14Y 3A 7A High true CHCn 1 amp 3
188. d of the control character Page 209 10 Buffer Commands Commands issued from within a program are placed in the command queue to be parsed and acted upon at the appropriate time by PMAC s command interpreter which operates in background between other background tasks If issued from a motion program the command will not be interpreted before the next move or dwell command in the motion program is calculated If issued from a PLC program the command will not be interpreted before the end of the current scan of the PLC This delay can make the action appear to execute out of sequence Because of the queuing of commands and the fact that command interpretation is a lower priority than command issuing it is possible to overflow the queue If there is no room 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 In standalone applications it is a good idea to set I1 to 1 disabling the serial handshake so any responses can be sent out the serial port the default response port at any time even if there is no host to receive it In a PLC program it is a good idea to have at least one of the con
189. d to have a backup file saved in the host computer with all the parameters and programs that PMAC needs to run the application Furthermore since the host computer could also fail and be replaced save the configuration file both in the host computer and in a floppy disk stored in a safe place This file must be downloaded and a SAVE command must be issued to PMAC ul The EZ PMAC Setup Software has a set of step by step procedures for establishing PMAC communications for performing different reset procedures and also has dedicated screens for backup and restoring a particular PMAC configuration Before you call us for help One of the most important services that Delta Tau provides is the excellent technical support for all its products To provide you a better service please have the following information prepared before contacting us 1 Your PMAC model In this case you are working with the Universal PMAC Lite board PMAC is pronounced Pe MAC and stands for Programmable Multi Axis Controller 2 Theinformation from these commands issued from a terminal window TYPE VERSION and DATE 3 The part number read from the PMAC board which is usually located on the soldering side of the board In this case you will have the number 602402 followed by three more digits describing the revision number 4 The operating system of the computer communicating with PMAC that is the version of Windows installed in the host computer
190. data is positive PMAC will compute the short arc path to the destination lt 1809 if it is negative PMAC will compute the long arc path gt 1809 It is not possible to specify a full circle in one command with the R vector specifier The plane for the circular arc must have been defined by the NORMAL command the default NORMAL K 1 defines the XY plane This command can only define planes in XYZ space which means that only the X Y and Z axes can be used for circular interpolation Other axes specified in the same move command will be interpolated linearly to finish in the same time The direction of the arc to the destination point clockwise or counterclockwise is controlled by whether the card is in CIRCLE1 clockwise or CIRCLE2 counterclockwise mode The sense of clockwise in the plane is determined by the direction of the NORMAL vector to the plane If the destination point is a different distance from the center point than is the starting point the radius is changed smoothly through the course of the move creating a spiral This is useful in compensating for any roundoff errors in the specifications However if the distance from either the starting point or the destination point to the center point is zero and error condition will be generated and the program will stop If the vector from the starting point to the center point does not lie in the circular interpolation plane the projection of that vector into th
191. destination points in jog style moves This mode is intended to create the minimum time move from one point to another Successive moves are not blended together in this mode and the different motors do not necessarily all reach their end points at the same time Page 234 10 Buffer Commands The accelerations and decelerations in this mode are controlled by motor jog acceleration I variables Ix19 Ix20 and Ix21 If global I variable 150 is set to 0 the velocities in this mode are controlled by the motor jog speed I variables Ix22 If 150 is set to 1 they are controlled by the motor maximum speed I variables Ix16 Only the motor with the greatest distance to speed ratio for the move actually moves at this speed all other motors are slowed from the specified speed to complete the move in approximately the same time so that the move is nearly linear The RAPID command takes the program out of any of the other move modes LINEAR CIRCLE PVT SPLINE any of the other move mode commands takes the program out of RAPID mode Examples RAPID X10 Y20 Move quickly to starting cut position M1 1 Turn on cutter LINEAR X12 Y25 F2 Start cutting moves M1 0 Turn off cutter RAPID XO YO Move quickly back to home position 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 le
192. dinate systems Different coordinate systems can run separate programs at different times including overlapping times or even run the same program at different or overlapping times A coordinate system must first be established by assigning axes to motors in Axis Definition Statements A coordinate system must have at least one motor assigned to an axis within that system or it cannot run a motion program even non motion parts of it When a program is written for a coordinate system if simultaneous motions are desired of multiple motors their move commands are simply put on the same line and the moves will be coordinated Axis definitions An axis is an element of a coordinate system It is similar to a motor but not the same thing An axis is referred to by letter There can be up to 8 axes in a coordinate system selected from X Y Z A B C U V and W An axis is defined by assigning it to a motor with a scaling factor and an offset X Y and Z may be defined as linear combinations of three motors as may U V and W The variables associated with an axis are scaled floating point values In the vast majority of cases there will be a one to one correspondence between motors and axes That is a single motor is assigned to a single axis in a coordinate system Even when this is the case however the matching motor and axis are not completely synonymous The axis is scaled into engineering units and deals only with commanded positi
193. distance in user units for the W axis Remarks This command causes a move of the W axis See axis data description above Examples WS W P10 33 5 Z10 W10 W ABS Q22 Q22 WAIT Function Suspend program execution Type Motion program PROG and ROT Syntax WAIT Remarks This command may be used on the same line as a WHILE condition to hold up execution of the program until the condition goes false When the condition goes false program execution resumes on the next line Use of the WAIT statement allows indefinite pauses without the need for repeated use of a servo command e g DWELL or DELAY to eat up the time Page 245 10 Buffer Commands However it is impossible to predict how long the pause will be WAIT permits a faster resumption of the program upon the WHILE condition going false Also the program timer is halted when WAITing which allows the In position bit to go true which can be used to trigger an action or the next move Since PMAC executes a WHILE condition WAIT statement every Real Time Interrupt until the condition goes false it is essentially the same as a PLCO This could use excessive processor time and in severe cases trip the watchdog timer on PMAC s that simultaneously run several motion programs that use WAIT statements and or large PLCO programs For example if the condition only needs to be checked every 20 msec and not every Real Time Interrupt you should consider using a D
194. ditions that caused the command issuance to occur set false immediately This will prevent the same command from being issued again on succeeding scans of the PLC overflowing the command and or response queues Typically in a motion program the time between moves prevents this overflow unless there are a lot of commands and the moves take a very short time PMAC will not issue an acknowledging character lt ACK gt or lt LF gt to a valid command issued from a program It will issue a BELL character for an invalid command issued from a program unless I6 is set to 2 It is a good idea to have I6 not set to 2 in early development so you will know when PMAC has rejected such a command Setting 16 to 2 in the actual application can prevent program hang up from a full response queue or from disturbing the normal host communications protocol Examples CMD D would disable all PLC programs equivalent to issuing a CONTROL D from the host CMD K would kill disable all motors on PMAC CMD A would stop all programs and moves on PMAC also closing any loops that were open DELAY data Function Delay for Specified Time Type Motion program Syntax DELAY data DLY data where data isa floating point constant or expression specifying the delay time in 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 The
195. dress extension bits Note When planning which channels to use when connecting the position and velocity encoders remember that the channel pointed to by Ix25 is used for the Overtravel Amplifier Fault and Home Flag inputs Ix05 Motor x Master Handwheel Position Address Range Legal PMAC X addresses Default 073F 1855 zero register at end of conversion table Units Legal PMAC X addresses Remarks This parameter 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 The instructions for setting this parameter are identical to those for Ix03 except the extended bits mean different things The default value permits handwheel input from the JPAN connector jumpered into the ENC2 counter with E22 and E23 Following Modes The source address of the position information occupies bits 0 to 15 of Ix05 range 0000 to FFFF or 0 to 65535 With bit 16 equal to zero the normal case position following is done with the actual position reported for the motor reflecting the change due to the following With bit 16 value 65536 equal to one the actual position reported for the motor does not reflect the change due to the following offset mode This mode can be useful for part offsets and for superimposing programmed and following moves For example to have motor 1 foll
196. e If the radius value specified in data is greater than zero the circular move to the specified end point will describe an arc of less than or equal to 180 with a radial length of the specified value If the radius value specified in data is less than zero the circular move to the specified end point will describe an arc of greater than or equal to 180 with a radial length equal to the absolute value of data 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 If the distance is greater than twice data by an amount less than Ix96 expressed in user length units PMAC will execute a spiral to the end point Ifthe distance is greater by more than Ix96 PMAC will stop the program with a run time error Examples RAPID XO YO Move to origin CIRCLE1 Clockwise circle mode X10 Y10 R10 Quarter circle to 10 10 XO YO R 10 Three quarters circle back to 0 0 X P101 R P101 2 Halfcircle to P101 0 RAPID Function Set Rapid Traverse Mode Type Motion program PROG and ROT Syntax RAPID RPD Remarks This command puts the program into a mode in which all motors defined to the commanded axes move to their
197. e Coordinate system specific Syntax MFLUSH Remarks This command permits the user to clear synchronous M variable assignment commands that have been put on the stack for intended execution with a subsequent move without executing the commands As an on line command it is useful for making sure pending outputs are not executed after a program has been stopped Examples Stop execution of a program MFLUSH Clear M variable stack B1R Start another program formerly pending M variables will not execute O constant Function Open loop output Scope Motor specific Syntax O constant Page 179 9 0 Online Commands 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 This command is commonly used for set up and diagnostic purposes for instance a positive O command must cause position to count in the positive direction or closed loop control cannot be established but it can also be used in actual applications Ifthe motor is not PMAC commutated this command will create a DC output voltage on the single DAC for the motor If the motor is commutated by PMAC the commutation algorithm is still active and the specified magnitude of
198. e if the address for Ix03 is 0724 Ix03 should be set to 10724 for the software capture of home position When software capture is used there is a potential delay between the actual trigger and PMAC s position capture of several milliseconds This can lead to inaccuracies in the captured position the speed of the motor at the time of the trigger must be kept low enough to achieve an accurate enough capture A two step procedure with a fast inaccurate capture followed by a slow accurate capture is common ly used in these types of systems Page 51 5 0 Programming PMAC Trigger Signal s amp Edge s Once you have specified the set of flags for the motor with Ix25 you must use Encoder Flag I variable 2 1902 1907 etc to tell PMAC whether to use a flag the index channel or both as the capture trigger and which edge of the flag and or the index channel to use Next you must use Encoder Flag I variable 3 1903 1908 etc to specify which of the four flags HMFLn LIMn LIMn FAULTn is to be used for the capture If you use a limit or a fault flag for home capture you must disable the normal function of that input by setting high bits of Ix25 at least for the duration of the homing search move see example below Torque Mode Triggering Normally the trigger condition for homing search moves jog until trigger moves and motion program move until trigger moves is an input flag signal transition Sometimes it is desired tha
199. e Mode Control 152 N Program Hold Slew Rate 153 Program Step Mode Control Motor Definition I Variables Ix00 Ix01 Ix02 Ix03 Ix04 Ix05 Ix06 Ix07 Ix08 Ix09 Motor x Activate Motor x PMAC Commutation Enable Motor x Command Output DAC Address Motor x Position Loop Feedback Address Motor x Velocity Loop Feedback Address Motor x Master Handwheel Position Address Motor x Master Handwheel Following Enable Motor x Master Handwheel Scale Factor Motor x Position Scale Factor Motor x Velocity Loop Scale Factor Motor Safety I Variables Ix1l Ix12 Ix13 Ix14 Ix15 Ix16 Ix17 Ix19 Motor x Fatal Shutdown Following Error Limit Motor x Warning Following Error Limit Motor x Positive Software Position Limit Motor x Negative Software Position Limit Motor x Deceleration Rate on Position Limit or Abort Motor x Maximum Permitted Motor Program Velocity Motor x Maximum Permitted Motor Program Acceleration Motor x Maximum Permitted Motor Jog Home Acceleration Motor Movement I Variables Ix20 Ix21 Ix22 Ix23 Ix25 Ix26 Ix27 Ix28 Ix29 Motor x Jog Home Acceleration Time Motor x Jog Home S Curve Time Motor x Jog Speed Motor x Homing Speed and Direction Motor x Limit Home Flag Amp Flag Address Motor x Home Offset Motor x Position Rollover Range Motor x In position Band Motor x Output or
200. e Rotary buffer blend on the fly If none of these features is required it is usually best to leave 13 at 0 Typical values of 113 for segmentation mode are 5 to 10 msec The smaller the value the tighter the fit to the true curve but the more computation is required for the moves and the less is available for background tasks If 113 is set too low PMAC will not be able to do all of its move calculations in the time allotted and it will stop the motion program with a run time error When I13 0 moves are done without this ongoing spline technique and CIRCLE mode moves are done as LINEAR mode moves Page 93 8 0 I Variables I5 Degree Radian Control for User Trig Functions Range 91 Default 0 degrees Units none Remarks This parameter controls whether the angle values for trigonometric functions in user programs motion and PLC and on line commands are expressed in degrees 115 0 or radians 115 1 I50 Rapid Move Mode Control Range 0 1 Default 1 Units none Remarks This parameter determines which variables are used for speed of RAPID mode moves When 150 is set to 0 the jog parameter for each motor Ix22 is used When 150 is set to 1 the maximum velocity parameter for each motor 1x16 is used instead Regardless of the setting of 150 the jog acceleration parameters Ix19 Ix21 control the acceleration I532 V Program Hold Slew Rate Range 0 8 388 607 Default 37 137 Units 110 units segmenta
201. e coordinate system is in CIRCLE clockwise arc move mode and 1 if the coordinate system is in CIRCLE2 counterclockwise arc move mode If both bits 0 and 4 are 0 this bit is set to 1 if the coordinate system is in RAPID move mode Otherwise this bit is 0 See the table below CIRCLE SPLINE Move Mode This bit is 1 if the coordinate system is in either CIRCLE or SPLINE move mode If bit 4 of this word is 0 this means CIRCLE mode if bit 4 is 1 this means SPLINE mode This bit is 0 if the coordinate system is in a different move mode LINEAR PVT or RAPID See the table below The states of bits 4 1 and 0 in the different move modes are summarized in the following table Examples A8002A020010 Page 146 LINEAR RAPID o 1 0 SPLINE 1 0 f i CIRCLEL o o 1 CIRCLE2 o 1 D L VE 0 a y a S O Request coordinate system status words PMAC responds the following bits are true Word 1 Bit 23 Z axis used in feedrate calcs Bit21 Y axis used in feedrate calcs Bit 19 X axis used in feedrate calcs Bit 5 Radius vector incremental mode Bit3 Move specified by time Bit 1 Single step mode Word 2 Bit 17 In position Bit 4 PVT Spline mode 9 0 Online Commands ges Function Report global status words Scope Global Syntax Remarks This command causes PMAC to return the global status bits in ASCII hexadecimal form PMAC returns twelve
202. e corresponding I variables that will determine for example how fast the motor will accelerate how fast it will move and how well the motion will be performed based on its tuning parameters The EZ PMAC Setup Software has dedicated screens for the configuration of each I variable The E catalog function of the EZ PMAC Setup Software has the description of each I variable The section below is a summary of the I variables involved in each feature For more information please refer to the complete I variables description chapter Some I variables might be expressed as for example Ix00 In the case of a motor I variable x stands for the motor number in the range of 1 through 8 In the case of a Coordinate System I variable TEES X stands for the coordinate system number also in the range of 1 through 8 online command resets all PMAC I variables to factory defaults This global reset S It is always a good practice to completely reset PMAC before start the I variables setup process The command also deletes any motion program or PLC program present in memory before reset Motor definition I variables Ix00 Motor x Activate for controlling an actual physical motor this PMAC motor I variable should be set to one If there is no physical motor associated with this PMAC motor x then this variable should be set to zero which is the case when using the encoder input or DAC output of this moto
203. e loaded each enabled PLC program will run automatically on power up provided that the I5 I variable has been properly set Motion programs can be started from the terminal window by typing for example the BIR command or can be automatically started on power up from a PLC program Always remember to type SAVE in the terminal window to keep any changes that you might have made in PMAC s memory The EZ PMAC Setup Software always reminds to save the PMAC parameters on each exit Universal PMAC Lite connectors and indicators J1 Display Port Outputs JDISP Port The JDISP connector allows connection of the ACC 12 or ACC 12A liquid crystal displays or of the ACC 12C vacuum fluorescent display Both text and variable values may be shown on these displays through the use ofthe DISPLAY command executing in either motion or PLC programs J2 Control Panel Port I O JPAN Port This connector is considered an advanced feature and it is not used on a standard application J3 Thumbwheel Multiplexer Port I O JTHW Port The Thumbwheel Multiplexer Port or Multiplexer Port on the JTHW connector has eight input lines and eight output lines The output lines can be used to multiplex large numbers of inputs and outputs on the port and Delta Tau provides accessory boards and software structures special M variable definitions to capitalize on this feature Up to 32 of the multiplexed I O boards may be daisy chained on the port in an
204. e plane is used If the destination point does not lie in the same circular interpolation plane as the starting point a helical move is done to the destination point If the destination point or its projection into the circular interpolation plane containing the starting point is the same as the starting point a full 360 arc is made in the specified direction provided that IJK vector specification is used In this case only the vector needs to be specified in the move command because for any axis whose destination is not specified the destination point is automatically taken to be the same as the starting point Ifno vector and no radial magnitude is specified in the move command a linear move will be done to the destination point even if the program is in circular mode PMAC performs arc moves by segmenting the arc and performing the best cubic fit on each segment I variable 113 determines the time for each segment 113 must be set greater than zero to put PMAC into this segmentation mode in order for arc moves to be done If 113 is set to zero circular arc moves will be done in linear fashion Examples X5000 Y 3000 11000 J1000 X P101 Z P102 P201 K P202 X10 I5 X10 Y20 C5 I5 J5 Y5 Z3R2 J10 Specifies a full circle of 10 unit radius A data Function A Axis Move Type Motion program PROG or ROT Syntax A data Page 200 10 Buffer Commands where data is a floating point constant or expre
205. e system constant for the time specified in data There are three differences between DWELL and the similar DELAY command First if the previous servo command was a blended move there will be a TA time deceleration to a stop before the dwell time starts Second DWELL is not sensitive to a varying time base it always operates in real time as defined by I10 Third PMAC does not pre compute upcoming moves and the program lines before them during the DWELL it waits until after it is done to start further calculations which it performs in the time specified by I11 or I12 Use of any DWELL command even a DWELLO while in external time base will cause a loss of synchronicity with the master signal Examples DWELL250 DWELL P1 P2 DWEO ELSE Function Start False Condition Branch Type Motion program PROG only PLC program Syntax ELSE Motion or PLC Program ELSE action Motion Program only Remarks This statement must be matched with an IF statement ELSE requires a preceding IF but IF does not require a following ELSE It follows the statements executed upon a true IF condition It is followed by the statements to be executed upon a false IF condition With nested IF branches you must be careful to match the ELSE statements to the proper IF statement In a motion program it is possible to have a single line IF statement IF condition action An ELSE statement on the next program line is automatically mat
206. ecified motors have finished homing Homing direction speed acceleration etc are determined by motor I variables If a motor is specified that is not in the coordinate system running the program the command or portion of the command will be ignored but an error will not be generated Page 219 10 Buffer Commands The speed of the home search move is determined by Ix23 If Ix23 0 then the programmed home command for that axis is ignored Unlike an on line homing command the motor number s in a program homing command is 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 Examples HOMEI These are motion program commands HM1 2 3 HOMEI 3 5 7 HMI 8 Z1HOME These are on line commands 1HM 2HM 3HM HOMEZ Function Programmed Zero Move Homing Type Motion program Syntax HOMEZ constant constant HOMEZ constant constant constant constant HMZ constant constant HMZ constant constant constant constant where constant is an integer from 1 to 8 representing a motor number Remarks This commands causes the specified motor s to go through pseudo homing search
207. ecimal I9 1 1125 I125 49152 _ Long form decimal I9 2 1125 cooo Short form hexadecimal I9 3 1125 T125 C000 _ Long form hexadecimal I constant expression Function Assign a value to an I variable Scope Global Syntax I constant constant expression where constant is an integer from 0 to 1023 representing the number of the I variable the optional second constant must be at least as great as the first constant it represents the number of the end of the range expression contains the value to be given to the specified I variable s Remarks This command assigns the value on the right side of the equals sign to the specified I variable or range of I variables If a motion or PLC program buffer is open when this command is sent to PMAC the command will be entered into the buffer for later execution Examples I5 2 I130 1 25 1130 I22 44 0 I102 C003 I104 1103 Page 161 9 0 Online Commands I constant Function Assign factory default value to an I variable Scope Global Syntax I constant constant where constant is an integer from 0 to 1023 representing the number of the I variable the optional second constant must be at least as great as the first constant it represents the number of the end of the range Remarks This command sets the specified I variable or range of I variables to the factor default value Each I variable has its own
208. ed by the values of Ix19 Ix22 in force at the time of this command Compare to J constant which is a jog relative to the present commanded position Usually the J constant command is more useful because its destination is not dependent on the following error at the instant of the command The J 0 command can be useful for swallowing any existing following error A variable incremental jog 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 ERRO01 if I6 is 1 or 3 Examples 1HM Do homing search move on Motor 1 J 2000 Jog a distance of 2000 counts from actual position If actual was 5 cts new command pos is 1995 cts J 2000 Jog a distance of 2000 counts from actual position If actual was 1992 cts new cmd pos is 3992 cts J Function Jog to specified variable distance from present actual position Scope Motor specific Syntax Jg Remarks This command causes the addressed motor to jog the distance specified in the motor s variable jog position distance register relative to the present actual position Jogging acceleration and velocity are determined by the values of Ix19 Ix22 in force at the time of this command Compare to J which is a jog relative to the present commanded position The variable jog position distance register is a floating point register with units of counts It is best acce
209. ed for each segment of each axis The command consists of one or more groupings of axis 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 and the second data item after the colon is the ending velocity The velocity units are the scaled position units as established by the axis definition statements divided by the time units as set by Ix90 for Coordinate System x The velocity here is a signed quantity not just a magnitude See the examples in the PVT mode description of the Writing a Motion Program section The time for the segment is the argument for the most recently executed PVT or TA command rounded to the nearest millisecond In PVT mode if no velocity is given for the segment PMAC assumes an ending velocity of zero for the segment Examples X1000 50 Y500 32 Z737 2 68 93 A P1 P2 P3 B SIN Q1 0 axis data data axis data data Function Move Until Trigger Type Motion program Syntax axis data data axis data data where axis is the character specifying which axis X Y Z A B C U V W the first data is a constant no parentheses or expression in parentheses representing the end position or distance in the absence of a trigger the second da
210. ed from a separate A V supply brought in on pin 9 of the J8 JEQU connector This supply can be in the 12V to 24V range and can be kept isolated from both the analog and digital circuits If E90 connects pins 2 and 3 the input flags are supplied from the digital 12V supply and isolation from the digital circuitry is defeated Clock configuration jumpers E98 DAC ADC Clock Frequency Control Default Configuration E98 1 2 This jumper is related to an advanced feature and should not be changed from default E29 E33 Phase Clock Frequency Control Default Configuration E29 E30 E31 E32 E33 OFF OFF ON OFF OFF These jumpers are related to an advanced feature and should not be changed from default E48 Option CPU Clock Frequency Control Default Configuration E48 OFF This jumper is related to an advanced feature and should not be changed from default E3 E6 Servo Clock Frequency Control Default Configuration E3 EA E5 E6 OFF OFF ON ON These jumpers are related to an advanced feature and should not be changed from default Page 10 2 0 PMAC Jumper Configuration E34A E38 Encoder Sample Clock Default Configuration E34A E34 E35 E36 E37 E38 OFF ON OFF OFF OFF OFF These jumpers are related to an advanced feature and should not be changed from default E40 E43 Servo and Phase Clock Direction Control Def
211. ed in the negative direction It is 0 otherwise Twelfth Character Returned Bit 3 Amplifier Fault Error This bit is 1 if this motor has been disabled because of an amplifier fault signal even if the amplifier fault signal has gone away or if this motor has been disabled due to an PT integrated current fault in which case bit 5 is also set It is 0 at all other times becoming 0 again when the motor is re enabled Bit 2 Fatal Following Error This bit is 1 if this motor has been disabled because it exceeded its fatal following error limit Ix11 or because it exceeded its integrated following error limit Ix63 in which case bit 6 is also set It is 0 at all other times becoming 0 again when the motor is re enabled Bit 1 Warning Following Error This bit is 1 if the following error for the motor exceeds its warning following error limit 1x12 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 Bit 0 In Position This bit is 1 when five conditions are satisfied the loop is closed the desired velocity zero bit is 1 which requires closed loop control and no commanded move the program timer is off not currently executing any move DWELL or DELAY the magnitude of the following error is smaller than Ix28 and the first four conditions have been satisfied for I7 1 consecutive
212. ed to an advanced feature and should not be changed from default Page 12 2 0 PMAC Jumper Configuration E103 Watchdog Timer disable Default Configuration E103 OFF If E103 is installed the watchdog safety function will be disabled This jumper is for testing purposes only E106 Power Up Reset Load Source Default Configuration E106 OFF If E106 is installed when the PMAC Lite executes its reset cycle PMAC enters a special re initialization mode that permits the downloading of new firmware either through the serial port or the bus port Under these conditions an appropriate program like Delta Tau s PEWIN Software allows the downloading of a firmware file Compiled PLCs must be recompiled for running under a different firmware version Before attempting to upgrade PMAC operational firmware make sure all of PMAC configuration has been Ww stored to disk on a backup file Also if compiled PLCs are used make sure to store their source code separately which is not automatically saved in a backup file After the firmware has been changed and before the memory configuration has been restored it is important to send the command to clear all memory and buffers Communication Jumpers E9 E10 E13 E14 Serial Interface Configuration Control Default Configuration E9 E10 E13 E14 ON ON ON ON The E9 E10 E13 and E14 jumpers control whether the RS 232 serial
213. eedrate Page 69 6 0 Motion Programs 90000 Programmed 8000 feedrate reached OPEN PROG 1 CLEAR 70000 LINEAR e0000 INC TSO ge F40 oe TA100 e X3 EEG TA75 10000 X3 0 CLOSE 10000 000 ons 0 10 0 18 020 025 Time sec 5 All the previous analysis was performed assuming a zero S curve component A move executed with an S curve component will be similar in shape but with rounded sections at the beginning and end of the acceleration lines No S curve with S curve Circular Interpolation PMAC allows circular interpolation on the X Y and Z axes in a coordinate system As with linear blended moves TA and TS control the acceleration to and from a stop and between moves Circular blended moves can be either feedrate specified F or time specified TM just as with linear moves It is possible to change back and forth between linear and circular moves without stopping This is accomplished by entering the command LINEAR when linear interpolation is needed and CIRCLEI or CIRCLE2 for circular interpolation Starting point Starting point End point y Y nj End point d iino Y abs j inc SX SATS a IS A Center ae VD NIS re oe T PE SLRS T aN ee eR y 7 X A Tabs 0X RUE E NOE X abs Page 70 1 2 3 4 5 6 7 6 0 Motion Programs PMAC performs arc moves by segmenting the arc and perform
214. een set a J 0 command can then be used to move the motor to the home position Note The polarity of the limit switches is the opposite of what many people would expect The LIMn input should be connected to the limit switch at the positive end of travel the LIMn input should be connected to the limit switch at the negative end of travel To disable the limit function of the switch you must set bit 17 of variable Ix25 for the motor to 1 For example if 1125 is normally C000 the default specifying the use of LIM1 for motor 1 setting 1125 to 2C000 disables the limit function It is a good idea to use the home offset parameter Ix26 to bring your home position out of the limit switch so you can re enable the limits immediately after the homing search move without being in the limit The following examples show two quick routines to do this type of homing One uses a motion program and the other a PLC program The same function could also be done with on line commands Qeeeeeeeees Motion Program Set up Variables to be saved eee CLOSE I123 10 Home speed 10 cts msec negative I125 CO000 Use Flags1 for Motor 1 limits enabled I126 32000 Home offset of 2000 counts enough to take you out of the limit 1902 3 Capture on rising flag and rising index 1903 2 Use LIM1 as flag negative end switch eee Motion program to execute routine 54k OPEN PROG 101 CLEAR I125 2 2C000 Disable LIM as limits HOME1 Home
215. eep your move parameters with your move commands lessening the chances of future errors and making debugging easier 8 Ina motion program PMAC has WHILE loops and IF ELSE branches that control program flow These constructs can be nested indefinitely In addition there are GOTO statements with either constant or variable arguments the variable GOTO can perform the same function as a Case statement GOSUB statements constant or variable destination allow subroutines to be executed within a program CALL statements permit other programs to be entered as subprograms Entry to the subprogram does not have to be at the beginning the statement CALL 20 15000 causes entry into Program 20 at line N15000 GOSUBs and CALLs can be nested only 15 deep 9 The CLOSE statement closes the currently OPENed buffer This should be used immediate after the entry of a motion PLC rotary etc buffer If the buffer is left open subsequent statements that are intended as on line commands e g P1 0 will get entered into the buffer instead It is good practice to have CLOSE at the beginning and end of any file to be downloaded to PMAC When PMAC receives a CLOSE command it automatically appends a RETURN statement to the end of the open program buffer If any PROGRAM or PLC in PMAC is improperly structured e g no ENDIF or ENDWHILE to match an IF or WHILE PMAC will report an ERR003 at the CLOSE command for any buffer until the problem is fixed Example Ru
216. efault is for incremental vector specification PMAC s convention is to take the short arc path if the R value is positive and the long arc path if R is negative Ifthe value of R is positive the arc to the move endpoint is the short route 180 degrees Ifthe value of R is negative the arc to the move endpoint is the long route gt 180 degrees Example 2 A circle 1 X20 Y10 R 10 d End point 20 10 Example 4 Example 3 circle 1 w circle 2 X20 Y10 R10 X20 Y10 R 10 Starting point 10 0 AC Example 1 circle 2 X20 Y10 R10 Page 71 6 0 Motion Programs 8 When performing a circular interpolation the individual axes describe a position Vs time profile close to a sine and cosine shape This is also true for their velocity and acceleration profiles Therefore circular interpolation makes an ideal feature to described trigonometric profiles Further the period and so frequency of the sine or cosine waves could be set by the total move time given by TA TM Circular Interpolation close delete gather undefine all amp l 2 gt 2000Y X is phantom open progl clear inc inc r ta300 tso tm1000 TA TM is period i13 10 normal k 1 X Y plane circlel clockwise DO 02 04 06 08 10 12 14 16 18 20 22 24 2 4 i Time sec x0 yO i10 complete circle izena rman f _we2endver_f close amp lblr Example T13 10 Move Segmentation Time NORMAL K 1 XY plane INC Incremental End Point definition INC
217. elay will trip Page 83 6 0 Troubleshooting Section Every RTI PMAC reads the 12 bit watchdog timer register Y register 1F and decrements the value by 8 this toggles bit 3 Ifthe resulting value is not less than zero it copies the result into a register that forces the bit 3 value onto the watchdog timer Repeated this process provides a square wave input to the watchdog timer In the background PMAC executes one scan through an individual PLC program then checks to see if there are any complete commands responding if there are then executes the housekeeping functions This cycle is repeatedly endlessly Most of the housekeeping functions are safety checks such as following error limits and overtravel limits When it is done with these checks PMAC sets the 12 bit watchdog timer register back to its maximum value As long as this occurs regularly at least every 512 RTI cycles the watchdog timer will not trip The purpose of this two part control of the timer is to make sure all aspects of the PMAC software are being executed both in foreground interrupt driven and background If anything keeps either type of routine from executing the watchdog will fail quickly The only recover for this failure assuming the 5 Volts power supply is satisfactory is to hardware reset PMAC Establishing communications Either the Executive or Setup program can be used to establish initial communications with the card Both programs h
218. elf they must be cleared and re entered If the buffer is not cleared new statements will be added onto the end of the buffer When you are finished you close the buffer with the CLOSE command Opening a PLC program buffer automatically disables that program After it is closed it remains disabled but it can be re enabled again with the ENABLE PLC n command where n is the buffer number 0 31 I5 must also be set properly for a PLC program to operate At the closing PMAC checks to make sure all IF branches and WHILE loops have been terminated properly If not it reports an error and the buffer is inoperable You should then correct the PLC program in the host and re enter it clearing the erroneous block in the process of course This process is repeated for all of the PLC buffers you wish to use Because all PLC programs in PMAC s memory are enabled at power on reset it is good practice to have I5 saved as 0 in PMAC s memory when developing PLC programs This will allow you to reset PMAC and have no PLC s running an enabled PLC only runs if I5 is set properly and more easily recover from a PLC programming error Structure example CLOSE DELETE GATHER DELETE TRACE OPEN PLC n CLEAR PLC statements CLOSE ENABLE PLC n Toerase an uncompiled PLC program you must open the buffer clear the contents then close the buffer again This can be done with 3 commands on one line as in OPEN PLC 5 CLEAR CLOSE PLC Program Struct
219. ening to erase the existing contents before entering the new ones After finishing entering the program statements use the CLOSE command to close the opened buffer It is always a good practice to include the DELETE GATHER command before opening any e buffer This will assure that memory used for previously gathering data is released and available for motion and PLC programs use COMPUTATIONAL FEATURES I variables I Variables initialization or setup variables determines the personality of the card 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 There are 1024 I variables from I0 to 11023 and they are organized as follows I0 s I79 General card setup I80 I99 Geared Resolver setup I100 I184 Motor 1 setup I185 I199 Coordinate System 1 setup I200 I284 Motor 2 setup I285 I299 Coordinate System 2 setup I800 I884 Motor 8 setup I885 I899 Coordinate System 8 setup I900 I979 Encoder 1 16 setup I980 I1023 Reserved for future use Values assigned to an I variable may be either a constant or an expression The commands to do this are on line immediate if no buffer is open when sent or buffered program commands is a buffer is open Examples I120 I120 45 I1120 P25 3 Page 39 5 0 Programming PMAC For I variables with li
220. ent of X Y and Z axes Type Motion program PROG and ROT Syntax IDIS constant where constant is an integer representing the number ofthe first of three consecutive Q variables to be used in the displacement vector Remarks This command adds to the offset values of the currently selected with TSEL transformation matrix for the coordinate system the values contained in the three 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 adding the values of these variables Xnew Xold Q constant Ynew Yold Q constant 1 Znew Zold Q constant 2 This command does not cause any movement of any axes it simply renames the present positions This command is similar to a PSET command except that IDIS is incremental and does not force a stop between moves as PSET does Examples XO YO Z0 020275 Q21 12 5 Q22 20 IDIS 20 This makes the current position X7 5 Y12 5 Z20 IDIS 20 This makes the current position X15 Y25 Z40 IF condition Function Conditional branch Type Motion and PLC program Syntax IF condition Valid in fixed motion PROG or PLC program only IF condition action action Valid in rotary or fixed motion program only where condition consists of one or more sets of expression comparator expression joined by logical operators AND or OR action is a program co
221. er setting must match the type of driver IC or damage to the IC will result S Example Standard configuration using the ULN2803A sinking open collector output IC JOPTO nput switc is MI1 e ig OND Gea en nu ee qmi RIDDEN me Optional 5 to 24 Volts DC E m ds power supply 33 V 34 GND E The T O Port screen of the EZ PMAC Setup Software allows monitoring the state of the general E purpose JOPTO digital inputs as well as setting the state of each general purpose JOPTO digital output Page 28 4 0 Machine Connections J5 JOPTO I O Port Connector OOOOOOOOOOOOQ OOOOOOOOOOOQ Front View PIN SYMBOL FUNCTION DESCRIPTION NOTES MI8 MACHINE INPUT 8 COMMON PMACCOMMON COMMON PMACCOMMON 1 INPUT COMMON PMACCOMMON 1 COMMON PMACCOMMON MACHINE INP C P OMM MACHINE INP PI OMM MACHINE INP Ph OMM MACHINE OU Ph O MACHINE OU Ph O MACHINE OU O O O O O MACHINE INPUT3 COMMON PMACCOMMON S O O O T T T OO 30000 J5 JOPTO 34 PIN CONNECTOR 340000 Z N 9 l LOW IS TRUE MI 2 e Ug E N 2 zZ Ei MACHINE INPUT1 LOW IS TRUE COMMON PMACCOMMON 9 T T O LOW IS TRUE T O U PU O U i OMM U COMMON PMACCOMMON O
222. erformed 4 A WAIT statement is encountered usually in a WHILE loop If calculations stop on condition 1 or 2 the calculation flag is cleared and will not be set again until actual motion progresses into the next move 1 or a new Run command is given 2 If calculations stop on conditions 3 or 4 the flag remains set so calculations will resume at the next RTI In these cases you have an empty no motion loop the motion program acts much like a PLC 0 during this period If PMAC ever cannot finish calculating the trajectory for a move by the time execution of that move is supposed to begin PMAC will abort the program showing a run time error in its status word Linear blended moves The move time is set directly by TM or indirectly based on the distances and feedrate F parameters set TM100 FRAX X Y or X3 Y4 1190 43 42 5900 X3 Y4 F50 TM 100 msec 50 50 Ifthe move time above calculated is less than the TA time set the move time used will be the TA time instead In this case the programmed TA or 2 TS if TA lt 2 TS results in the minimum move time of a linearly interpolated move Ifthe TA programmed results to be less than twice the TS programmed TA lt 2 TS the TA time used will be 2 TS instead The acceleration time TA of a blended move cannot be longer than two times the previous TM minus the previous TA otherwise the value 2 TM TA will be used as the current TA instead The safet
223. es conversion table settings and bus addresses for DPRAM and VME are copied from the firmware section of flash memory into active memory The saved values of these values are not used but they are still kept in the user section of flash memory Because this command immediately causes PMAC to enter its power up rest cycle there 1s no acknowledging character lt ACK gt or lt LF gt returned to the host Examples I130 60000 Change 1 proportional gain SAVE SAVE I variables to EAROM I130 80000 Change gain again Reset card I130 Request value of parameter 60000 PMAC reports current value which is SAVEd value Put E51 on Reset card I130 Request value of parameter 2000 PMAC reports current value which is default Page 135 9 0 Online Commands Function Global card reset and reinitialization Scope Global Syntax Remarks This command performs a full reset of the card and reinitializes the memory All programs and other buffers are erased All I variables encoder conversion table entries and VME and DPRAM addressing parameters are returned to their factory defaults Previously SAVEd values for these parameters are still held in EAROM and can be brought into active memory with a subsequent command It will also recalculate the firmware checksum reference value and eliminate any PASSWORD that might have been entered M variable definitions P variable values Q variable v
224. es are instantaneous servo variables the user cannot be sure that M16 or MI7 will have the same value both places in the expression or that the values for M16 and M17 will come from the same servo cycle The first problem can be overcome by setting P12M16 and P2 M17 right above this but there is no general solution to the second problem Array capabilities It is possible to use a set of P variables as an array To read or assign values from the array simply replace the constant specifying the variable number with an expression in parentheses Example P1 10 Array index variable P3 P P1 Same as P3 P10 To write to the array M variables must be used An M variable defined to the corresponding P variable address will allow changing any P variable and therefore the contents of the array Example Values 31 to 40 will be assigned to variables P1 through P10 M34 L 1001 Address location of P1 M35 gt Y SBC22 0 16 Definition word of M34 OPEN PLC 15 CLEAR P100 31 WHILE P100 gt 40 From 31 to 40 M34 P100 Value is written to the array P100 P10041 Next value M35 M35 1 Next Array position next P variable ENDWHILE DISABLEPLC15 This PLC runs only once CLOSE ENA PLC15 Enable the PLC Make sure I5 is either 2 or 3 P1 10 List the values of P1 to P10 The same concept applies for Q variables and M variables arrays although the address range for them is different Operators PMAC operators work like those in any c
225. es not need to be changed from the default There are two reasons that the user might want to change this from the default value First because it 1s involved in the gear ratio of the position following function the ratio is Ix07 Ix08 this might be changed usually raised to get a more precise ratio The second reason to change this parameter usually lowering it is to prevent internal saturation at very high gains or count rates velocity PMAC s filter will saturate when the velocity in counts sec multiplied by Ix08 exceeds 768M Page 99 6 0 I Variables 805 306 368 This only happens in very rare applications the count rate must exceed 8 3 million counts per second before the default value of Ix08 gives a problem 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 If Ix08 is changed Ix30 should be changed inversely to keep the same servo performance e g if Ix08 is doubled Ix30 should be halved Ix09 Motor x Velocity Loop Scale Factor Range 0 8 388 607 Default 96 Units none Rema
226. ese flags include the end of travel limits the amplifier enable and fault lines and the home flag C The EZ PMAC Setup Software has a dedicate screen for the configuration of the Ix25 I variable The same screen allows monitoring the end of travel limits and other related flags Ix26 Motor x Home Offset this variable determines an offset in 1 16 of a count that PMAC will move after the home procedure is completed This is important to let PMAC move away from the home sensor which could be important for a better reliable home search routine Servo Control I Variables The servo control variables are setup in the motor tuning process Usually this is accomplished using a software tool like the PMAC Executive Software or the EZ PMAC Setup Software The EZ PMAC Setup Software has a dedicate screen for the configuration of the tuning variables However the PMAC Executive program auto tuning utility is strongly recommended for its simplicity and reliability 1x30 Motor x Proportional Gain this is the most important variable for the tuning setup process It determines how strong the corrections on the servo loop will be made based on a given following error value The rule of thumb for the setup of this variable is to increase it until the motor starts to buzz and the backup for about 20 of its value Ix31 Motor x Derivative Gain this variable acts effectively as an electronic damper The higher Ix31 1s the heavier
227. esponse into the window Page 127 9 0 Online Commands PMAC reports the value of the actual position register plus the position bias register plus the compensation correction register and if bit 16 of Ix05 is 1 handwheel offset mode minus the master position register For multiple cards on a single serial daisy chain this command affects only the card currently addressed in software by the n command Example lt CTRL P gt 9999 5 10001 2 5 7 2 1 0 0 0 O lt CR gt lt CONTROL Q gt 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 For multiple cards on a single serial daisy chain this command affects all cards on the chain regardless of the current software addressing lt CONTROL R gt Function Begin execution of motion programs in all coordinate systems Scope Global Syntax ASCII Value 18D 12 Remarks This command is the equivalent of issuing the R run command to all 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 witha B prog num command
228. f a computer language and move specification constructs very much like machine tool languages Numerical values in the program can be specified as constants or expressions Motion or PLCs programs are entered in any text file to be downloaded afterwards to PMAC PEWIN provides a built in text editor for this purpose but any other text editor could conveniently be used Once the code has been written it can be downloaded to PMAC using PEWIN All PMAC commands can be issued from any terminal window communicating with PMAC Online commands allow for example to jog motors change variables report variables values start and stop programs query for status information and even write short programs and PLCS In fact the downloading process is just a sequence of valid PMAC commands sent line by line from a particular text file Coordinate Systems A coordinate system in PMAC is a grouping of one or more motors for the purpose of synchronizing movements A coordinate system even with only one motor can run a motion program a motor cannot PMAC can have up to 8 coordinate systems addressed as amp 1 to amp 8 in a very flexible fashion e g 8 coordinate systems of 1 motor each 1 coordinate system of 8 motors 4 coordinate systems of two motors each etc In general if you want certain motors to move in a coordinated fashion put them in the same coordinate system If you want them to move independently of each other put them in separate coor
229. f the jog J Ix21 Motor x Jog Home S Curve Time Range 0 8 388 607 Default 50 Units msec Remarks This parameter establishes the time spent in each half of the S for S curve acceleration in a jogging homing or RAPID mode move starting stopping and changing speeds If this parameter is more than half of Ix20 the total acceleration time will be 2 times Ix21 and the acceleration time will be pure S curve no constant acceleration portion If the maximum acceleration rate set by Ix20 and Ix21 exceeds what is permitted for the motor 1x19 the time will be increased so that Ix19 is not exceeded Do not set both Ix20 and Ix21 to 0 simultaneously even if you are relying on Ix19 to limit your acceleration or a division by zero error will occur in the jog move calculations possibly resulting in erratic motion 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 Ix22 Motor x Jog Speed Range positive floating point Default 32 0 Units Counts msec Page 105 6 0 I Variables Remarks This parameter establishes the commanded speed of a jog move or a programmed RAPID mode move if I50 0 for motor x Direction ofthe jog
230. factory default these are shown in the I Variable Specification section Examples I13z I100 199z INC Function Specify Incremental Move Mode Scope Coordinate system specific Syntax INC INC axis axis where axis isa letter X Y Z A B C U V W representing the axis to be specified or the character R to specify radial vector mode Remarks The INC command without arguments causes all subsequent positions for all axes in position motion commands to be treated as incremental distances An INC statement with arguments causes the specified axes to be in incremental mode and all others stay the way they were before The default axis specification is absolute If R is specified as one of the axes the I J and K terms of the circular move radius vector specification will be specified in incremental form i e as a vector from the move start point not from the origin An INC command without any arguments does not affect this vector specification The default vector specification is incremental If a motion program buffer is open when this command is sent to PMAC it will be entered into the buffer as a program statement Examples INC A B C A B amp Caxes made incremental other axes and radius vector left as is INC All axes made incremental radius vector left as is INC R Radius vector made incremental all axes left as is Page 162 9 0 Online Commands J Function Adjus
231. feedrate override value other than 100 If PMAC s circular interpolation function is used at all then 113 must be greater than zero and Ix17 will not be active as an acceleration limit Example Given axis definitions of 1 gt 10000X 2 gt 10000Y an Ix17 for each motor of 0 25 and the following motion program segment Page 103 6 0 I Variables INC F10 TA200 TSO X20 Y20 the rate of acceleration from the program at the corner for motor 2 X is 0 10 units sec 10000 cts unit sec 1000msec 200 msec 0 5 cts msec2 The acceleration of motor 2 Y is 40 5 cts msec2 Since this is twice the limit the acceleration will be slowed so that it takes 400 msec With the same setup parameters and the following program segment INC F10 TA200 TSO X20 Y20 X 20 Y20 the rate of acceleration from the program at the corner for motor 1 X is 7 07 7 07 units sec 10000 cts unit sec 1000msec 200 msec 0 707 cts msec2 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 Note that in the second case the acceleration time is made longer the corner is made larger for what is an identically shaped corner 909 In a contouring XY application this parameter should not be relied upon to produce consistently sized corners Ix19 Motor x Maximum Permitted Motor Jog Home Acceleration Range positive floatin
232. fied M variable or range of M variables to a 48 bit double word both X and Y memory X more significant at the specified location in PMAC s address space The data is interpreted as a fixed point signed two s complement integer The definition consists of the letter D an optional colon and the word address Memory locations for which this format is useful are labeled with D in the memory map Examples M161 gt D 0028 Motor 1 desired position register specified in hex M161 gt D40 Motor 1 desired position register specified in decimal M162 gt D 2C Motor 1 actual position register specified in hex M constant gt L address Function Long Word Floating Point M Variable Definition Scope Global Syntax M constant constant gt L address where constant is an integer from 0 to 1023 representing the number of the M variable Page 177 9 0 Online Commands 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 Remarks This command causes PMAC to define the specified M variable or range of M variables to point to a long word 48 bits of data both X and Y memory at the specified location in PMAC s address space The data is interpreted as a floating point value with PMAC s own 48 bit floating point format The definition con
233. g point Default 0 015625 Units counts msec Remarks This parameter sets a limit to the commanded acceleration magnitude for jog and home moves and for RAPID mode programmed moves of motor x If the acceleration times in force at the time Ix20 and Ix21 request a higher rate of acceleration this rate of acceleration will be used instead The calculation does not take into account any feedrate override value other than 100 Since Jogging moves are usually not coordinated between motors many people prefer to specify jog acceleration by rate not time To do this simply set Ix20 and Ix21 low enough that the Ix19 limit is always used Do not set both Ix20 and Ix21 to 0 or a division by zero error will result in the move calculations possibly causing erratic operations The minimum acceleration time settings that should be used are Ix20 1 and Ix21 0 The default limit of 0 015625 counts msec is quite low and will probably limit acceleration to a lower value than is desired in most systems most users will eventually raise this limit This low default was used for safety reasons Example With Ix20 accel time at 100 msec Ix21 S curve time at 0 and Ix22 jog speed at 50 counts msec a jog command from stop would request an acceleration of 50 cts msec 100 msec or 0 5 cts msec2 If Ix19 were set to 0 25 the acceleration would be done in 200 msec not 100 msec With the same parameters in force an on the fly reversal from pos
234. g the starting position and velocity from the previous segment the ending position and velocity and the segment time PMAC computes the unique cubic position profile parabolic velocity profile to meet these constraints The segment time in a sequence of moves can be changed on the fly either with another PVT command or with a TA command TS TM and F settings are irrelevant in this mode The PVT command takes the program out of any of the other move modes LINEAR CIRCLE SPLINE RAPID and any ofthe other move mode commands takes the program out of PVT move mode Refer to the Writing a Motion Program section of the manual for more details of this mode Examples INC incremental mode specify moves by distance PVT200 enter this mode move time 200ms X100 1500 cover 100 units ending at 1500 units sec X500 3000 cover 500 units ending at 3000 units sec X500 1500 cover 500 units ending at 1500 units sec X100 0 cover 100 units ending at 0 units sec PVT P37 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 The assignment is done as t
235. ge to this newly specified value is determined by coordinate system I variable Ix94 I variable Ix93 for this coordinate system must be set to its default value which tells to coordinate system to take its time base value from the command register in order for this command to have any effect The maximum value that PMAC can implement is equal to Q23n10 100 or the servo update rate in kHz 100 If you specify a value greater than this PMAC will saturate at this value instead If you want to control the time base based on a variable value you should assign an M variable suggested M197 to the commanded time base register X 0806 X 08C6 etc then assign a variable value to the M variable The value assigned here should be equal to the desired value times 110 100 Examples 0 Command value of 0 stopping motion 33 333 Command 1 3 of real time speed 100 Command real time speed 500 Command too high a value Request current value 225 88230574 PMAC responds this is max allowed value M197 gt X 0806 24 _ Assign variable to C S 1 command reg M197 P1 110 100 Equivalent to amp 1 P1 amp constant Function Address a coordinate system Scope Global Syntax amp constant Page 137 9 0 Online Commands where constant is an integer from 1 to 8 representing the number of the coordinate system to be addressed Remarks This command makes the coordinate system specified by con
236. gineering units It also gets updated by the online command axis constant or the motion program command PSET Page 59 5 0 Programming PMAC M166 gt X 0033 0 24 S 1 Actual velocity 1 Ix09 32 cts cyc M166 is the actual velocity register For display purposes use the Motor filtered actual velocity M174 To read this register in cts msec P166 M166 8388608 I109 32 I10 1I160 1 M167 gt D 002D 1 Present master handwheel pos 1 Ix07 32 cts of master or 1 Ix08 32 cts of slaved motor M167 is related to the master slave relationship set through Ix05 and Ix06 It contains the present number of counts the master To read this register in counts P167 M167 I108 32 or P167 M167 I107 32 M169 gt D 0046 1 Compensation correction Calculated leadscrew compensation correction according to actual position M162 and the leadscrew compensation table set through the define comp command To read this register in counts P169 M169 I108 32 M172 gt L 082B 1 Variable jog position distance counts Contains the distance for the J command Example M172 2000 J Jog to position 2000 encoder counts M173 gt Y 0815 0 24 S 1 Encoder home capture offset counts Contains the home offset from the reset power on position Important for the capture compare features Example If M117 1 P103 M103 M173 Captured position minus offset endif M174 gt Y 082A
237. hasing 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 This command is necessary to initialize a PMAC commutated motor after power up reset if Ix80 for the motor is set to 0 If Ix80 is 1 the initialization will be done automatically during the power up reset cycle This command will not be accepted if the motor is executing a move Example I180 Request value of 1 power on mode variable Donee PMAC responds with 0 powers on unphased and killed Co Eee a Reset card motor is left in killed state Initialize motor phasing and reading as necessary Page 134 9 0 Online Commands Function Full card reset Scope Global Syntax Remarks This command causes PMAC to do a full card reset The effect of is equivalent to that of cycling power on PMAC or taking the INIT line low then high With jumper E51 in its default state OFF for PMAC PC Lite VME ON for PMAC STD this command does a standard reset of the PMAC On PMAC s without the Option CPU section not option 4A 5A or 5B I variable values conversion table settings and DPRAM and VMEbus addresses stored in permanent memory EAROM by the last SAVE command are reloaded into active memory RAM All information stored in battery backed RAM such as P variable and Q variable values M
238. he 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 Full speed execution along the path will commence again on an R or 8 command The ramp up to full speed will also take place at a rate determined by Ix95 full time base value either internally or externally set Once the full speed is reached Ix94 determines any time base changes HOME Function Start Homing Search Move Scope Motor specific Syntax HOME HM Remarks This command causes the addressed motor to perform a homing search routine The characteristics of the homing search move are controlled by motor I variables Ix03 and Ix19 Ix26 plus encoder I variables 2 and 3 for that motor s position encoder The on line home command simply starts the homing search routine PMAC provides no automatic indication that the search has completed although the In Position interrupt could be used for this purpose or whether the move completed successfully Polling or a combination of polling and interrupts is generally used to determine completion and success By contrast when a homing search move is given in a motion program e g HOME1 2 the motion program will keep track of completion by itself as part of its sequencing algorithms If there is an axis offset in
239. he I constant constant command Upon board re initialization by the command or by a reset with E51 in the non default setting all default settings are copied from the firmware into active memory The last saved values are not lost they are just not used P Variables P variables are general purpose user variables They are 48 bit floating point variables at fixed locations in PMAC s memory but with no pre defined use There are 1024 P variables from PO to P1023 A given P variable means the same thing from any context within the card all coordinate systems have access to all P variables contrast Q variables which are coupled to a given coordinate system below This allows for useful information passing between different coordinate systems P variables can be used in programs for any purpose desired positions distances velocities times modes angles intermediate calculations etc If a command consisting simply of a constant value is sent to PMAC PMAC assigns that value to variable PO For example if you send the command 342 lt CR gt to PMAC it will interpret it as P02342 CR This capability is intended to facilitate simple operator terminal interfaces It does mean however that it is not a good idea to use PO for other purposes because it is easy to change this accidentally Q Variables Q variables like P variables are general purpose user variables 48 bit floating point variables at fixed locations in memo
240. he I8 period Page 242 10 Buffer Commands For LINEAR mode moves with 113 0 no move segmentation if the commanded velocity distance TM of any motor in the move exceeds its maximum limit Ix16 all motors in the coordinate system will be slowed down in proportion so that no motor exceeds its limit Examples TM30 TM47 635 TM P1 3 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 If TS is zero the acceleration is constant throughout the TA time and the velocity profile is trapezoidal If TS is greater than zero the acceleration will start at zero and linearly increase through TS time then stay constant for time TC until TA TS time and linearly decrease to zero at TA time that is TA 2TS TC If TS is equal to TA 2 the entire acceleration will be spent in S curve form TS values greater than TA 2 override the TA value total acceleration time will be 2TS For LINEAR mode moves with PMAC not in segmentation mode 113 0 if the rate of acceleration for any motor in the coordinate system exceeds that motor s maximum as specified by Ix17 the acceleration time for all motors is
241. he buffer will be reported If start is specified the reporting will begin start words from the 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 If the motion program requested by this command does not exist in PMAC PMAC will reject this command reporting an ERR003 if 16 1 or 3 PROGs 1000 32767 can be protected by password If the PROG is protected by password and the proper password has not been given PMAC will reject this command reporting an ERR002 if 16 1 or 3 Examples LIST PROG 9 Request listing of all of motion program 9 LINEAR PMAC responds F10 X10Y10 XOYO RETURN LIST PROG 9 Request listing of program w address offsets O LINEAR 1 F10 2 X10Y10 Note that a 2 axis command takes 2 addresses 4 X0Y0 6 RETURN LIST PROG 9 4 Request listing starting at address 4 4 X0Y0 6 RETURN LIST PROG 9 2 4 Request listing starting at 2 4 words long 2 X10Y10 4 X0Y0 LIST PROG 9 2 Request listing starting at top 2 words long 0 LINEAR 1 F10 Page 174 9 0 Online Commands M constant Function Report the current M variable
242. he card must be re initialized with the command which clears all program buffers as well as the password Then the programs must be reloaded and a new password entered Examples Starting from power up reset with a null password LIST PLC 1 Request listing of protected program PI PI 1 PMAC responds because there is no password RETURN PASSWORD Bush This sets the password to Bush LIST PLC 1 Request listing of protected program PI PI 1 PMAC responds because password has been RETURN matched by changing it Reset the card LIST PLC 1 Request listing of protected program ERR002 PMAC rejects because password not entered PASSWORD Reagan ERR002 PASSWORD BUSH ERR002 PASSWORD Bush LIST PLC 1 PI PI 1 RETURN PASSWORD Clinton LIST PLC 1 PI PI1 1 RETURN PASSWORD Clinton LIST PLC 1 P1 PI 1 RETURN PC 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 to Clinton Request listing of protected program PMAC responds because password has been matched by changing it Reset the card Attempt to enter password PMAC accepts as correct password Request listing of protected program PMAC responds because password ma
243. he line is processed which in a motion program performing a continuous move sequence is usually one or two moves ahead of the move actually executing at the time because of the need to calculate ahead in the program Because each coordinate system has its own set of Q variables it is important to know which coordinate system s Q variable is affected by this command When executed from inside a motion program this command affects the specified Q variable of the coordinate system running the motion program When executed from inside a PLC program this command affects the specified Q variable of the coordinate system specified by the most recent ADDRESS command executed inside that PLC program If there has been no ADDRESS command executed since power on reset it affects the Q variable of Coordinate System 1 Examples Q1 3 Q99 2 71828 Q124 P100 ATAN Q120 Page 233 10 Buffer Commands R data Function Set Circle Radius Type Motion program PROG or ROT Syntax R data where data is a constant or expression representing the radius of the arc move specified in user length units Remarks This partial command defines the magnitude of the radius for the circular move specified on that command line It does not affect the moves on any other command lines If there is no R radius specification and no IJK vector specification on a move command line the move will be done linearly even if the program is in CIRCLE mod
244. herwise PMAC will reject this command with an error if 16 is 1 or 3 it will report the error number The same conditions that cause PMAC to reject an R command will cause it to reject an S command refer to those conditions under the R command specification Examples amp 3B20S C S 3 point to beginning of PROG 20 and step Pl Ask for value of P1 1 PMAC responds S Do next step in program P1 Ask for value of P1 again 3472563 PMAC responds probable problem SAVE Function Copy setup parameters to non volatile memory Scope Global Syntax SAVE Remarks This command causes PMAC to copy setup information from active memory to non volatile memory so this information can be retained through power down or reset Its exact operation depends on the type of PMAC used For the standard PMACS with battery backed RAM only the basic setup information is stored with the SAVE command I variables encoder conversion table entries and VME DPRAM address entries This information is copied back from flash to active memory during a normal power up reset operation User programs buffers and definitions are simply held in RAM by the battery backup there is no need to save these For the option PMACS with flash backed RAM all user setup information including programs buffers and definitions Is copied to flash memory with the SAVE command This information is copied back from flash to active memory during a normal power up reset
245. hex S Function Execute One Move Step of Motion Program Scope Coordinate system specific Syntax S Remarks This command causes the addressed PMAC coordinate system to start single step execution of the motion program addressed by the coordinate system s program counter from the location of the program counter Addressing of the program counter is done initially using the B constant command At the default 153 value of zero a Step command causes program execution through the next move or DWELL command in the program even if this takes multiple program lines When 153 is set to 1 a Step command causes program execution of only a single program line even if there is no move or DWELL command on that line If there is more than one DWELL or DELAY command on a program line a single Step command will only execute one of the DWELL or DELAY commands Page 189 9 0 Online Commands Regardless of the setting of 153 if program execution on a Step command encounters a BLOCKSTART statement in the program execution will continue until a BLOCKSTOP statement is encountered Ifthe 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 Ot
246. his command causes PMAC to define the specified M variable or range of M variables to point to a location in one of the two halves X or Y of PMAC s data memory In this form the variable can have a width of 1 to 24 bits and can be decoded several different ways so the bit offset bit width and decoding format must be specified the bit width and decoding format do have defaults The definition consists of the letter X or Y an optional colon the word address the starting bit number offset an optional bit width number and an option format specifying letter Page 178 9 0 Online Commands Legal values for bit width and bit offset are inter related The table below shows the possible values of width and the corresponding legal values of of set for each setting of width width offset 1 0 23 4 0 4 8 12 16 20 8 04 2 16 12 04842 16 048 20 04 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 Examples Machine Output 1 M1 2Y FFC2 8 1 1 bit full spec M1 gt YS FFC2 8 1 bit short spec Encoder 1 Capture Compare Register M103 gt X C003 0 24 U 24 bit full spec M103 gt X C003 24 24 bit short spec DAC 1 Output Register M102 gt Y C003 8 16 S 16 bit value M102 gt Y49155 8 16 S same decimal address MFLUSH Function Clear pending synchronous M variable assignments Scop
247. his connector is to allow the connection of an external power supply for using flag sensors in the 12 to 24 Volts range which is otherwise limited to up to 15 Volts operation Other features of this connector are considered advanced and are not used on a standard application J11 Machine Connector JMACH Connector This connector labeled J11 contains the pins for four channels of machine I O analog outputs incremental encoder inputs and associated input and output flags plus power supply connections Lines on this connector are almost always accessed through the ACC 8P or ACC 8D breakout boards TB1 Power Supply terminal block This terminal block can be used to provide the input for the power supply for the circuits on the PMAC Lite board when it is not in a bus configuration However it is recommended to use the ACC 8P or equivalent terminal block for the power supply connections LED Indicators The Universal PMAC Lite has 3 LED indicators red yellow and green When the green LED is lit this indicates that power is applied to the 5V input when the red LED is lit this indicates that the watchdog timer has tripped and shut down the PMAC The yellow LED located beside the red and green LEDs when lit indicates that the phase locked loop that multiplies the CPU clock frequency from the crystal frequency on the Option CPU is operational and stable This indicator is for diagnostic purposes only it may not be present on your boar
248. his motor is a true state on the warning following error status bit for the motor Ifbit 17 is at the default of 0 the trigger for position capture is the capture flag of the flag registers as set by Ix25 The trigger is used in two types of moves homing search moves and programmed move until triggers If bit 17 is set to 1 the triggered position must be software captured so bit 16 must also be set to 1 to specify software captured bit position Page 97 6 0 I Variables Ix04 Motor x Velocity Loop Feedback Address Range Legal PMAC X addresses Default Same as Ix03 Units Legal PMAC X addresses Remarks This parameter holds the address of the position feedback device that PMAC uses for its velocity loop 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 If the velocity loop feedback device is the same device as is used for commutation if PMAC is doing the commutation then both Ix04 and Ix83 commutation feedback address must reference the same device However Ix04 typically points to the converted data a register in the Encoder Conversion table while Ix83 must point directly to the DSPGATE encoder register The instructions for setting this parameter are identical to those for Ix03 except that there are no ad
249. hould 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 19 Full Abbreviated Program Listing Form Range 0 3 Default 2 Units none Remarks 0 Short form decimal address I variable return Long form decimal address I variable return Short form hex address I variable return Long form hex address I variable return When this parameter is 0 or 2 programs are sent back in abbreviated form for maximum compactness and when I variable values or M variable definitions are requested only the values or definitions are returned not the full statements When this parameter is 1 or 3 programs are sent back in full form for maximum readability Also I variable values and M variable definitions are returned as full command statements which is useful for archiving and later downloading When this parameter is 0 or 1 I variable values that specify PMAC addresses are returned in decimal form When it is 2 or 3 these values are returned in hexadecimal form with the prefix You are always free to send any I variable values to PMAC either in hex or decimal regardless of the I9 setting This does not affect how I variable assignment statements inside PMAC motion and PLC programs are reported when the program is listed Example With I9 0 I125 cueus Request address I variable value 49152 uisus PMAC reports just value in decimal M101 Req
250. i Odennmacho Chuo ku Tokyo 103 Japan PH 03 3665 6421 FAX 03 3665 6888 E MAIL info pmac j com South Korea Delta Tau Intl Korea Hyundai Apt 1103 1205 1575 4 Ilsan2 Ilsan Koyang Kyungki do South Korea 411 312 PH 82 344 975 6156 FAX 82 344 957 6155 E MAIL jypark bora dacom co kr
251. ies and features Description of PMAC on board configuration jumpers Complete description of how to connect PMAC to the machine Complete description of how to program PMAC Description ofthe EZ PMAC Setup Software The chapters on this manual do not have an exact continuity and can be referenced or skipped as necessary The PMAC motion controller is very rich in features and expansion capabilities Because this manual illustrates the implementation of PMAC in a typical application some of the PMAC advanced features are not described Further information of all PMAC features can be obtained from the PMAC Software Reference the PMAC User s Manual and the PMAC Hardware Reference im It is strongly recommended to use the EZ PMAC program as a software tool for configuring and m programming PMAC All the example programs provided in this manual can be found in the samples folder of the EZ PMAC Setup Software installation directory What is PMAC PMAC pronounced Pe MAC stands for Programmable Multi Axis Controller It is a family of high performance servo motion controllers capable of commanding up to 32 axes of motion simultaneously with a high level of sophistication The Universal PMAC Lite board member of the PMAC family is a 4 axis motion controller The term Lite stands to indicate a maximum of four on board axes of motion control The term Universal indicates that this motion controller can have
252. ified F move is so short that the calculated move time is less than the acceleration time or the time of a time specified TM move is less than the acceleration time the move will be done in the acceleration time instead This will slow down the move The acceleration time will be extended automatically when any motor in the coordinate system 1s asked to exceed its maximum acceleration rate Ix17 for a programmed LINEAR mode move with 113 0 no move segmentation 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 Ix88 Coordinate System x Default Program S Curve Time Range 0 8 388 607 Default 50 Units msec Remarks This parameter set the default time in each half of the S in S curve acceleration for programmed blended LINEAR and CIRCLE mode moves in coordinate system x It does not affect SPLINE PVT or RAPID mode moves The first use ofa TS statement in a program overrides this value Even though this parameter makes is possible not to specify acceleration time in the motion program you are strongly encouraged to use TS in the program and not rely on this parameter unless you must keep to a syntax standard that does not support this e g RS 274 G Codes Specifying acceleration time in
253. ifies a vector normal to the ZX plane K data Function K Vector Specification for Circular Moves Type Motion program PROG and ROT Syntax K data where data isa floating point constant or expression representing the magnitude of the K component of the vector in scaled user axis units Remarks In circular moves this specifies the component of the vector to the arc center that is parallel to the Z axis The starting point of the vector is either the move start point for INC R mode default or the XYZ origin for ABS R mode 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 Examples X10 220 I5 K5 Page 225 10 Buffer Commands Z 2 P1 K P1 K33 333 specifies a full circle whose center is 33 333 units in the positive Z direction from the start and end point NORMAL K 1 specifies a vector normal to the XY plane LINEAR Function Blended Linear Interpolation Move Mode Type Motion program PROG and ROT Syntax LINEAR LIN Remarks The LINEAR command puts the program in blended linear move mode this is the default condition on power up reset Subsequent move commands in the program will be processed according to the rules of this mode On each axis the card attempts to reach a constant velocity that is determined by the most recent feedrate F or move time TM command The LIN
254. ill indicate the end of the move Monitoring for Errors A robust monitoring algorithm will also look for the possibility that the homing search move could end in an error condition Often this is just part of the general error monitoring that is done at all times looking for overtravel limits fatal following errors and amplifier faults If an error does occur during the homing move it is important to distinguish between one that occurs before the trigger has been found and one that occurs after If the error occurs after PMAC knows where the home position is and the homing search does not need to be repeated Once the error cause has been fixed the motor can simply be moved to the home position with a command such as J 0 Buffered Program Command The homing search move can also be commanded from within a motion program with the HOMEn command where n is the motor number Note that this command specifies a motor unlike other motion program commands that specify an axis move In a motion program PMAC s automatic program sequencing routines monitor for the end of the move When the move is successfully completed program execution continues with the next command Page 53 5 0 Programming PMAC Multiple homing moves can be started together by specifying a list or range of motor numbers with the command e g HOMEL 3 or HOME2 6 Further program execution will wait for all of these motors to finish their homing moves Separate ho
255. ime translation rotation scaling and mirroring of the X Y and Z axes of any coordinate system PMAC will reject this command reporting an ERR007 if 1671 or 3 if any ROTARYor GATHER buffer exists Any of these buffers must be DELETEd first Examples DEL TBUF DELETE TBUF DISABLE PLC Function Disable specified PLC program s Scope Global Syntax DISABLE PLC constant constant DIS PLC constant constant DISABLE PLC constant constant DIS PLC constant constant where constant is an integer from 0 to 31 representing the program number Remarks This command causes PMAC to disable stop executing the specified PLC program or programs 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 PLC programs can be re enabled by using the ENABLE PLC command If a motion or PLC program buffer is open when this command is sent to PMAC the command will be entered into that buffer for later execution Page 156 9 0 Online Commands Examples DISABLE PLC 1 DIS PLC 5 DIS PLC 3 4 7 DISABLE PLC 0 31 ENABLE PLC Function Enable specified PLC program s Scope Global Syntax 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 pr
256. inate system running the program Ifa different coordinate system runs the same motion program it will use different Q variables Page 40 5 0 Programming PMAC When you are accessing a Q variable from a PLC program statement you are working with the Q variable for the coordinate system that has been addressed by that PLC program with the ADDRESS command Each PLC program can address a particular coordinate system independent of other PLC programs and independent of the host addressing If no ADDRESS command is used in the PLC program the program uses the Q variables for C S 1 M Variables To permit easy user access to PMAC s memory and I O space M variables are provided Generally a definition only needs to be made once with an on line command On PMACS with battery backup the definition is held automatically On PMACS with flash backup the SAVE command must be used to retain the definition through a power down or reset The user defines an M variable by assigning it to a location and defining the size and format of the value in this location An M variable can be a bit a nibble 4 bits a byte 8 bits 1 1 2 bytes 12 bits a double byte 16 bits 2 1 2 bytes 20 bits a 24 bit word a 48 bit fixed point double word a 48 bit floating point double word or special formats for dual ported RAM and for the thumbwheel multiplexer port There are 1024 M variables MO to M1023 and as with other variable types the number of the
257. ine If there is more than one DWELL or DELAY command on a program line a single Step command will only execute one of the DWELL or DELAY commands Regardless of the setting of 153 if program execution on a Step command encounters a BLOCKSTART statement in the program execution will continue until a BLOCKSTOP statement is encountered Motor Definition I Variables Ix00 Motor x Activate Range 0 1 Default 1100 1 1200 I800 0 Units none Remarks This parameter determines whether the motor is de activated 0 or activated 71 If activated position servo and trajectory calculations are done for the motor An activated motor may be enabled either in open or closed loop or disabled killed depending on commands or events If Ix00 is 0 not even the position calculations for that motor are done so a P command would not reflect position changes Any PMAC motor not used should be de activated so PMAC does not waste time doing calculations for that motor The fewer motors are activated the faster the servo update time can be Ix01 Motor x PMAC Commutation Enable Range 0 1 Default 0 Units none Remarks This parameter determines whether PMAC will perform commutation calculations for the motor and provide two analog outputs Ix01 1 or not perform commutation and only provide one analog output Ix01 0 If a multi phase motor is used but is commutated in the amplifier Ix01 should be set to 0 Page
258. ing Program This bit is 1 if the coordinate system is currently executing a motion program It is 0 if the C S is not currently executing a motion program Note that it becomes 0 as soon as it has calculated the last move and reached the final RETURN statement in the program even if the motors are still executing the last move or two 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 Bit 22 Bit 21 Bit 20 Page 144 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 113 gt 0 Run Time Error This bit is 1 when the coordinate system has stopped a motion program due to an error encountered while executing the program e g jump to non existent label insufficient calculation time etc Circle Radius Error This bit is 1 when a motion program has been stopped because it was asked to do an arc move whose distance was more than twice the radius by an amount greater than Ix96 Amplifier Fault Error This bit is 1 when any motor in the coordinate system has been killed due to receiving an amplifier fault signal It is 0 at other times changing from 1 to 0 when the offending motor is re enabled 9 0 Online Commands Eighth character returned Bit 19 Bit 18 Bit 1
259. ing the best cubic fit on each segment I variable I13 determines the time for each segment 113 must be set greater than zero to put PMAC into this segmentation mode in order for arc moves to be done If 113 is set to zero circular arc moves will be done in linear fashion The practical range of 113 for the circular interpolation mode is 5 10 msec A value of 10 msec is recommended for most applications a lower than 10 msec I13 value will improve the accuracy of the interpolation calculating points of the curve more often but will also consume more of the PMAC s total computational power When PMAC is automatically segmenting moves 113 gt 0 which is required for Circular Interpolation the Ix17 accelerations limits and the Ix16 velocity limits are not observed Any axes used in the circular interpolation are automatically feedrate axes for circular moves even if they were not so specified in an FRAX command Other axes may or may not be feedrate axes Any non feedrate axes commanded to move in the same move command will be linearly interpolated so as to finish in the same time This permits easy helical interpolation The plane for the circular arc must have been defined by the NORMAL command the default NORMAL K 1 defines the XY plane This command can only define planes in XYZ space which means that only the X Y and Z axes can be used for circular interpolation Other axes specified in the same move command will be interpolated linea
260. ints to this part of the definition it can be used to change the subject register The main use of this technique is to create arrays of P and Q variables or arrays in dual ported RAM or in user buffers see on line command DEFINE UBUFFER Page 41 5 0 Programming PMAC Many M variables have a more limited range than PMAC s full computational range Ifa value outside of the range of an M variable is attempted to be placed to that M variable PMAC automatically rolls over the value to within that range and does not report any errors For example with a single bit M variable any odd number written to the variable ends up as 1 any even number ends up as 0 Ifa non integer value is attempted to be placed in an integer M variable PMAC automatically rounds to the nearest integer Once defined an M variable may be used in programs just as any other variable through expressions When the expression is evaluated PMAC reads the defined memory location calculates a value based on the defined size and format and utilizes it in the expression Care should be exercised in using M variables in expressions If an M variable is something that can be changed by a servo routine such as instantaneous commanded position which operates at a higher priority the background expression evaluation there is no guarantee that the value will not change in the middle of the evaluation For instance if in the expression M16 M17 M16 M17 the M variabl
261. ion E101 E102 Auxiliary Signals Output voltage configure Default Configuration El E2 1 2 1 2 The U54 driver IC controls the AENA and EQU signals on the J8 JEQU connector With the default sinking output driver IC ULN2803A or equivalent in U54 for the J8 JEQU port outputs these jumpers must connect pins 1 and 2 to supply the IC correctly If this IC is replaced with a sourcing output driver IC UDN2981A or equivalent these jumpers must be changed to connect pins 2 and 3 to supply the new IC correctly e The jumper setting must match the type of driver IC or damage to the IC will result E109 Display Port Configuration Default Configuration E109 OFF This jumper is related to an advanced feature and should not be changed from default E110 Expansion Port Configuration Default Configuration E110 1 2 This jumper is related to an advanced feature and should not be changed from default Reserved configuration jumpers E0 Reserved for future use Default Configuration EO OFF This jumper is reserved for future use and should not be changed from default Page 18 3 0 Wiring Guidelines Proper wiring grounding and shielding are essential to prevent unwanted electrical noise and to assure proper servo operation and performance The most common symptoms resulting from improper wiring are inaccurate positioning poor servo contro
262. ion 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 Second if all other motors in the same coordinate system are also in position a status bit in the coordinate system status word is set Third for the hardware selected FPD0 FPD3 coordinate system if I2 0 or for the software addressed amp n coordinate system if 2 1 outputs to the control panel port and to the interrupt controller are set Technically five conditions must be met for a motor to be considered in position 1 The motor must be in closed loop control 2 The desired velocity must be zero 3 The magnitude of the following error must be less than this parameter 4 The move timer must not be active 5 The above four conditions must all be true for 17 1 consecutive scans The move timer is active during any programmed or non programmed move including DWELLs and DELAYs in a program if you wish this bit to come true during a program you must do an indefinite wait between some moves by keeping the program trapped in a WHILE loop that has no moves or DWELLs More sophisticated in position functions for instance ones that require several consecutive scans within the band can be implemented using PLC programs See the program examples section The units of this parameter are 1 16 of a count so the value should be 16 times the number of counts in the in position band
263. ion of program 1J Jog Motor 1 positive J Stop jogging J Return to prejog position R Resume execution of PROG 5 Halt program execution 2J Jog Motor 2 negative J Stop jogging R Try to resume execution of PROG 5 lt BELL gt ERR017 PMAC reports error not at position to resume J Return to prejog position R Resume execution of PROG 5 Function Report motor status Scope Motor specific Syntax Remarks This command causes PMAC to report the motor status bits as an ASCH 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 The seventh character represents Bits 20 23 of the second word the twelfth character represents Bits 0 3 The value of a bit is 1 when the condition is true 0 when it is false The meaning of the individual bits is FIRST WORD RETURNED X 003D X 0079 etc First character returned Bit 23 Motor Activated This bit is 1 when Ix00 is 1 and the motor calculations are active it is 0 when Ix00 is 0 and motor calculations are deactivated Bit 22 Negative End Limit Set This bit is 1 when motor actual position is less than the software negative position limit Ix14 or when the hardware limit on this end LIMn note has been tripped it is 0 otherw
264. is 1 when the motor is executing any move with a predefined end point and end time This includes any motion program move dwell or delay any jog to position move and the portion of a homing search move after the trigger has been found It is 0 otherwise It changes from 1 to 0 when execution of the commanded move finishes Integration Mode This bit is 1 when Ix34 is 1 and the servo loop integrator is only active when desired velocity is zero It is 0 when Ix34 is 0 and the servo loop integrator is always active Dwell in Progress This bit is 1 when the motor s coordinate system is executing a DWELL instruction It is 0 otherwise 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 This is related to the Run Time Error Coordinate System status bit Desired Velocity Zero This bit is 1 if the motor is in closed loop control and the commanded velocity is zero i e it is trying to hold position It is zero either if the motor is in closed loop mode with non zero commanded velocity or if it is in open loop mode Abort Deceleration This bit is 1 if the motor is decelerating due to an Abort command or due to hitting hardware or software position overtravel limits It is 0 otherwise It changes from 1 to 0 when the commanded deceleration t
265. is strongly recommended to use the EZ PMAC Setup Software as a software tool for configuring m and programming PMAC All the example programs provided in this manual can be found in the samples folder of the EZ PMAC Setup Software installation directory Moving a motor Jog commands and Motion Programs The main goal ofthe PMAC motion controller is to control motion that is to let a particular physical motor to move In PMAC once the motors are properly setup motion can be accomplished in two ways Jog commands allow moving the motor continuously to position it to a certain distance or to move it in incremental intervals Jog commands are issued from the terminal window in the form of online commands Examples 1J Moves Motor 1 continuously in the positive direction 1J Stops Motor 1 1J Moves Motor 1 continuously in the negative direction 1J Stops Motor 1 Ifa particular motion sequence is desired and also if that sequence is tight to some logic a motion program is a better approach for moving a motor than Jog online commands Example OPEN PROG 1 CLEAR Opens PROG1 buffer for editing LINEAR Linear mode motion INC Incremental mode TA100 Acceleration time is 100 msec TSO No S curve component F40 Feedrate is 40 length_units second IF M11 1 If Input 1 is ON X3 Move axis X 3 length units of distance ELSE Y 3 Move axis Y 3 length units of distance in the opposite direc
266. ise If the motor is deactivated bit 23 of the first motor status word set to zero or killed bit 14 of the second motor status word set to zero this bit is not updated Page 139 9 0 Online Commands Bit 21 Bit 20 Second character returned Bit 19 Bit 18 Bit 17 Bit 16 Third character returned Bit 15 Bit 14 Bit 13 Bit 12 Fourth character returned Bit 11 Bit 10 Page 140 Positive End Limit Set This bit is 1 when motor actual position is greater than the software positive position limit Ix13 or when the hardware limit on this end LIMn note has been tripped it is 0 otherwise If the motor is deactivated bit 23 of the first motor status word set to zero or killed bit 14 of the second motor status word set to zero this bit is not updated Handwheel Enabled This bit is 1 when Ix06 is 1 and position following for this axis is enabled it is 0 when Ix06 is 0 and position following is disabled Phased Motor This bit is 1 when Ix01 is 1 and this motor is being commutated by PMAC it is 0 when Ix01 is 0 and this motor is not being commutated by PMAC Open Loop Mode This bit is 1 when the servo loop for the motor is open either with outputs enabled or disabled killed Refer to Amplifier Enabled status bit to distinguish between the two cases It is 0 when the servo loop is closed under position control always with outputs enabled Running Definite Time Move This bit
267. issued ENDIF I constant Function Report the current I variable value s Scope Global Syntax I constant constant where constant is an integer from 0 to 1023 representing the number of the I variable the optional second constant must be at least as great as the first constant it represents the number of the end of the range Remarks This command causes PMAC to report the current value of the specified I variable or range of I variables When I9 is 0 or 2 only the value of the I variable itself is returned e g 20000 When I9 is 1 or 3 the entire variable value assignment statement e g 1130210000 is returned by PMAC When I9 is 0 or 1 the values of address I variables are reported in decimal form When I9 is 2 or 3 the values of these variables are reported in hexadecimal form Page 160 9 0 Online Commands 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 Examples I5 Request the value of I5 2 PMAC responds I130 135 Request the value of 1130 through I135 60000 PMAC responds with 6 lines 5000 5000 50000 1 20000 To see the effect of I9 on the form of the response observe the following I9 0 1125 49152 Short form d
268. istent subprogram will cause program execution to stop in an error condition The value immediately following CALL can take fractional values If there is no fractional component the called program starts at the beginning If there is a fractional component the called program is entered at a line label specified by the fractional component if this label does not exist PMAC will generate an error and stop execution PMAC works with five fractional digits to specify the line label if you use fewer it automatically fills out the rest with zeros For instance CALL 35 1 is interpreted as CALL 35 10000 which causes a jump to label N10000 of program 35 CALL 47 123 causes a jump to label N12300 of program 47 If letters and data e g X1000 follow the CALL data these can be arguments to be passed to the subprogram If arguments are to be passed the first line executed in the subroutine should be a READ statement This statement will take the values associated with the specified letters and place them in the appropriate Q variable For instance the data following A is placed in variable Q101 for the coordinate system executing the program that following B is placed in Q102 and so on to the data following Z being placed in Q126 The subprogram can then use these variables If the subprogram calls another subprogram with arguments the same Q variables are used Refer to READ for more details Ifthere is no READ statement in the subroutine or if n
269. it and or the In Position bit to monitor for the end of motor motion Bit 9 Reserved for future use Bit 8 Phasing Search Error This bit is set to 1 if the phasing search move for a PMAC commutated motor has failed due to amplifier fault overtravel limit or lack of detected motion It is set to 0 if the phasing search move did not fail by any of these conditions not an absolute guarantee of a successful phasing search Eleventh Character Returned Bit 7 Trigger Move This bit is set to 1 at the beginning of a jog until trigger or motion program move until trigger It is set to 0 at the end of the move if the trigger has been found but Page 141 9 0 Online Commands remains at if the move ends with no trigger found This bit is useful to determine whether the move was successful in finding the trigger Bit 6 Integrated Fatal Following Error This bit is 1 if this motor has been disabled due to an integrated following error fault as set by Ix11 and Ix63 The fatal following error bit bit 2 will also be set in this case Bit 6 is zero at all other times becoming 0 again when the motor is re enabled Bit 5 a T Amplifier Fault Error This bit is 1 if this motor has been disabled by an integrated current fault The amplifier fault bit bit 3 will also be set in this case Bit 5 is 0 at all other times becoming 0 again when the motor is re enabled Bit 4 Backlash Direction Flag This bit is 1 if backlash has been activat
270. itive to negative jog would request an acceleration of 50 50 cts msec 100 msec or 1 0 cts msec2 The limit would extend this acceleration period by a factor of 4 to 400 msec Page 104 6 0 I Variables Motor Movement I Variables Ix20 Motor x Jog Home Acceleration Time Range 0 8 388 607 Default 0 so Ix21 controls Units msec Remarks This parameter 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 Therefore if Ix20 is set to 0 Ix21 alone controls the acceleration time in pure S curve form In addition if the maximum acceleration rate set by these times exceeds what is permitted for the motor Ix19 the time will be increased so that Ix19 1s not exceeded Do not set both Ix20 and Ix21 to 0 simultaneously even if you are relying on Ix19 to limit your acceleration or a division by zero error will occur in the jog move calculations possibly resulting in erratic motion 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 o
271. l and in the worst case damage parts of the controller s hardware These are some known noise sources 1 Switches operating inductive loads such as relays solenoids 2 Solid state relays or PWM servo amplifiers 3 Arc welding and plasma torch machines 4 Heavy current carrying wires 5 Fluorescent lights 6 Neon lights The following notes illustrate the most common wiring problems and methods for reducing electromagnetic noise Ground loops Ground is an equipotential circuit reference point A ground loop can be defined as electrical grounds that are not at the same electrical potential namely zero volts AC and DC As a result a ground loop generates a potential difference along the ground line connecting two electrical devices This originates the following important consequences 1 An electrical current will circulate along the ground wire dissipating power and generating heat Wire insulators will be degraded and eventually damaged 2 The ground electric potential will change resulting in a wrong signal reference Some electrical signals in PMAC will change state above 0 7 Volts against ground If the ground reference rises above 1 Volt an evident unreliable behavior will result 3 Insome cases the ground line is used as a safety mechanism against electric shocks Therefore the ground line must be kept as a zero volts reference point Star ground connection All component chassis ground points and signal ground or commo
272. loops other than total buffer size in fixed motion and PLC programs No nesting is allowed in rotary motion programs Examples IF P1210 M1 1 IF M11 0 AND M12 0 M2 1 M3 1 IF M1 0 P1 P1 1 ELSE P1 P1 1 IF M11 0 P1 1000 SIN P5 X P1 ENDIF IF P1 lt 0 OR P2 lt 0 AND P50 1 X P1 DWELL 1000 ELSE X P1 2 DWELL 2000 ENDIF INC Function Incremental Move Mode Type Motion program Syntax INC axis axis where axis isa letter specifying a motion axis X Y Z A B C U V W or the letter R specifying the arc center radial vector 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 Page 223 10 Buffer Commands An INC statement with arguments causes the specified axes to be in incremental mode and all others stay the way they were before If R is specified as one of the axes the I J and K terms of the circular move radius vector specification will be specified in incremental form i e as a vector from the move start point not from the origin An INC command without any arguments does not affect this vector specification The default radial vector specification 1s incremental If no motion program buffer is open when
273. lowing the CALL when a RETURN command is encountered If x is an integer the jump is to the beginning of PROG x if there is a fractional component to x the jump is to line label N y 100 000 where y is the fractional part of x This structure permits the creation of special subprograms either as a single subroutine or as a collection of subroutines that can be called from other motion programs The PRELUDE command allows creating an automatic subprogram call before each move command or other letter number command in a motion program Page 64 6 0 Motion Programs Passing Arguments to Subroutines These subprogram calls are made more powerful by use of the READ statement The READ statement in the subprogram can go back up to the calling line and pick off values associated with other letters to be used as arguments in the subprogram The value after an A would be placed in variable Q101 for the coordinate system executing the program the value after a B would be placed in Q102 and so on Z value goes in Q126 Letters N or O cannot be passed This structure is particularly useful for creating machine tool style programs in which the syntax must consist solely of Jetter number combinations in the parts program Since PMAC treats the G M T and D codes as special subroutine calls the READ statement can be used to let the subroutine access values on the part program line after the code The READ statement also provides the
274. m is executing motion program moves in segmentation mode I13 gt 0 It is 0 otherwise This is primarily for internal use Page 145 9 0 Online Commands Bit 6 Bit 5 Bit4 Segmented Move Acceleration This bit is 1 when the coordinate system is executing motion program moves in segmentation mode 11320 and accelerating from a stop It is 0 otherwise This is primarily for internal use Segmented Move Stop Request This bit is 1 when the coordinate system is executing motion program move in segmentation mode 11370 and it is decelerating to a stop It is 0 otherwise This is primarily for internal use PVT SPLINE Move Mode This bit is 1 if this coordinate system is in either PVT move mode or SPLINE move mode If bit 0 of this word is 0 this means PVT mode if bit 0 is 1 this means SPLINE mode This bit is 0 if the coordinate system is in a different move mode LINEAR CIRCLE or RAPID See the table below Twelfth character returned Bit 3 Bit2 Bit 1 Bit 0 Cutter Compensation Left This bit is 1 if the coordinate system has cutter compensation on and the compensation is to the left when looking in the direction of motion It is 0 if compensation is to the right or if cutter compensation is off Cutter Compensation On This bit is 1 if the coordinate system has cutter compensation on It is 0 if cutter compensation if off CCW Circle Rapid Mode When bit 0 is 1 and bit 4 is 0 this bit is set to 0 if th
275. 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 Setting this parameter to zero disables the warning following error limit function If this parameter is set greater than the fatal following error limit Ix11 the warning status bit will never go true because the fatal limit will disable the motor first If bit 17 of Ix03 is set to 1 the motor can be triggered for homing search moves jog until trigger moves and motion program move until trigger moves when the following error exceeds Ix12 This is known as torque mode triggering because the trigger will occur at a torque level corresponding to the Ix12 limit At any given time one coordinate system s status bit can be output to several places which system depends on what coordinate system is hardware selected on the panel input port if I2 0 or what coordinate system is software addressed from the host amp n if 2 1 The outputs that work in this way are F1LD pin 23 on connector J2 FLER line IR3 into the programmable interrupt controller PIC on PMAC PC line IR6 into the PIC on PMAC STD and if E28 connects pins 1 and 2 FEFCO on the JMACH connectors The units of Ix12 are 1 16 ofa count Therefore this parameter must hold a value 16 time
276. me in servo cycles multiply milliseconds by 8 388 608 110 then the PLC waits until the M variable is less than 0 Page 80 Example 7 0 PLC Programs M90 X 0700 0 24 S Timer register 1 8388608 110 msec M91 gt Y 0700 0 24 8S Timer register 2 8388608 110 msec M92 X 0701 0 24 S Timer register 3 8388608 110 msec M93 gt Y 0701 0 24 8S Timer register 4 8388608 110 msec OPEN PLC3 CLEAR M1 0 Reset Output before start M90 1000 8388608 110 Set timer to 1000 msec 1 second WHILE M9050 Loop until counts to zero ENDWHILE M1 1 Set Output 1 after time elapsed DIS PLC3 disables PLC3 execution needed in this example CLOSE If you need more timers probably the best technique to use is in memory address X 0 This 24 bit register counts up once per servo cycle We will store a starting value for this then each scan subtract the starting value from the current value and compare the difference to the amount of time we wish to wait Example MO gt X 0 24 Servo counter register M85 gt X S07F0 24 Free 24 bit register M86 gt X SO7F1 24 Free 24 bit register OPEN PLC 3 CLEAR M1 0 Reset Outputl before start M85 M0 Initialize timer M86 0 WHILE M86 lt 1000 Time elapsed less than specified time M86 M0 M85 M86 M86 I10 8388608 Time elapsed so far in milliseconds ENDWHILE M1 1 Set Output 1 after time elapsed DISABLEPLC3 disables PLC3 execution needed in this example C
277. ming commands even on the same line e g HOME1 HOME2 will be executed in sequence with the first finishing before the second starts It is not possible to execute partially overlapping homing moves from a single motion program Note carefully the difference in syntax between the on line command and the buffered command The on line command is simply HOME or HM and it acts on the currently addressed motor so the motor number must be specified in front of the command e g 1HM In the buffered command the motor number is part of the command following immediately after HOME or HM letters e g HM1 Homing from a PLC Program PMAC PLC programs can command homing search moves by giving on line commands with the CO statement e g COMMAND 1HM These commands simply start the homing search move code must be written to monitor for finishing if that is desired The motor number must be specified in the specific command string or with the ADDRESS n statement without this statement motor addressing is not modal within PLC programs Motion vs PLC Program Homing The following table summarizes the differences between homing using Motion programs and PMAC PLC programs PLC Programs Program execution point stays on the line The PLC does not automatically monitor for containing the Home command until the the start and end of the homing move homing move Uis finished programmed axis moves Jog commands program motion program
278. mited range an attempt to assign an out of range value does not cause an error The value is automatically rolled over to within the range by modulo arithmetic truncation For example I3 has a range of 0 to 3 4 possible values The command 13 5 would actually assign a value of 5 modulo 4 1 to the variable On PMACS with battery backed RAM most of the I variable values can be stored in a 2K x 8 EEPROM IC with the SAVE command These values are safe here even in the event of a battery backed RAM failure so the basic setup of the board is not lost After a new value is given to one of these I variables the SAVE command must be issued in order for this value to survive a power down or reset The I variables that are not saved to EEPROM are held in battery backed RAM These variables do not require a SAVE command to be held through a power down or reset and the previous value is not retained anywhere These variables are 119 144 Ix13 Ix14 On PMACS with flash memory backup those with Option 4A 5A or 5B all ofthe I variable values can be stored in the flash memory with the SAVE command If there is an EEPROM IC on the board it is not used After a new value is given to any I variable the SAVE command must be issued in order for this value to survive a power down or reset Default values for all I variables are contained in the manufacturer supplied firmware They can be used individually with the I constant command or in a range with t
279. mmand Remarks This command allows conditional branching in the program With an action statement or statements following on that line it will execute those statements provided the condition is true this syntax is valid in motion programs only 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 Page 222 10 Buffer Commands When there is an ELSE statement on the motion program line immediately following an IF statement with actions on the same line that ELSE statement is automatically matched to this IF statement not to any preceding IF statements under which this IF statement may be nested With no statement following on that line if the condition is true PMAC will execute all subsequent statements on following lines down to the next ENDIF or ELSE statement this syntax is valid in motion and PLC programs If the condition is false it will skip to the ENDIF or ELSE statement and continue execution there In a rotary motion program only the single line version of the IF statement is permitted No ELSE or ENDIF statements are allowed In a PLC program compound conditions can be extended onto multiple program lines with subsequent AND and OR statements There is no limit on nesting of IF conditions and WHILE
280. mmand line to the open motion program buffer that represents this position This process can be repeated to learn a series of points The motors can be open loop or closed loop as they are moved around Page 75 6 0 Motion Programs Page 76 7 0 PLC Programs PMAC will stop the scanning of the motion program lines when enough move commands are calculated ahead of time This feature is called look ahead and it is necessary to properly blend the moves together and to observe the motion safety parameters In the following example PMAC calculates up to the third move and will stop the program scanning until the first move is completed that is when more move planning is required Example OPEN PROG 1 CLEAR Open program buffer I13 0 Two moves ahead of calculation LINEAR INC TA100 TSO F50 Mode commands X1 First Move X1 Second Move X1 Third Move M1 1 This line will be executed only after the first move is completed CLOSE Close written buffer program one In contrast enabled PLCs are continuously executed from beginning to end regardless of what any other PLC or Motion program is doing PLCs are called asynchronous because are designed for actions that are asynchronous to the motion Also they are called PLC programs because they perform many of the same functions as hardware programmable logic controllers PLC programs are numbered 0 through 31 PLC programs 1 31 are executed in background Each PLC program
281. mmunications 1 Do the bus address jumpers E91 E92 E66 E71 set an address that matches the bus address that the Executive program is trying to communicate with 2 Is there something else on the bus at the same address Try changing the bus address to see if communications can be established at a new address Address 768 300 hex is usually open Page 84 6 0 Troubleshooting Section Serial communications l Are you using the proper port on the PC Make sure if the Executive program is addressing the COMI port that you have cabled out of the COMI connector 2 Does the baud rate specified in the Executive program match the baud rate setting of the E44 E47 jumpers on PMAC 3 With a breakout box or oscilloscope make sure you see action on the transmit lines from the PC as you type into the Executive program Ifyou do not there is a problem on the PC end 4 Probe the return communication line while you give PMAC a command that requires a response e g CONTROL F gt If there is no action you may have to change jumpers E9 E16 on PMAC to exchange the send and receive lines Ifthere is action but the host program does not receive characters you may have RS 232 receiving circuitry that does not respond at all to PMAC s RS 422 levels If you have another model of PC try using it as a test most models accept RS 422 levels quite well If you cannot get your computer to accept the signals you may need a level conversion device
282. motor is low true so the enable state is low voltage output and sinking current and the disable state is not conducting current With the default ULN28034A sinking driver used by the PMAC Lite this is the fail safe option allowing the circuit to fail in the disable state With this jumper ON the amplifier enable line is high true so the enable state is not conducting current and the disable state is low voltage output and sinking current This setting is not generally recommended The following table shows which jumper affects which channel AENA2 AENAS E28 Following Error Watchdog Timer Signal Control Default Configuration E28 223 Jump pin 1 to 2 to allow warning following error 1x12 for the selected coordinate system to control FEFCO on J8 57 Jump pin 2 to 3 to cause WATCHDOG timer output to control FEFCO Low TRUE output in either case E100 Auxiliary Signals Supply Control Default Configuration E100 1 2 The U54 driver IC controls the AENA and EQU signals on the J8 JEQU connector If E100 connects pins 1 and 2 U54 will be supplied from the analog A 15V supply which can be isolated from the digital circuitry If E100 connects pins 2 and 3 U54 will be supplied from a separate A V supply brought in on pin 9 of the J8 JEQU connector This supply can be in the 12V to 24V range and can be kept isolated from the digital and analog circuits Page 17 2 0 PMAC Jumper Configurat
283. move is controlled by the jog command A change in this parameter will not take effect until the next move command For instance if you wanted to change the jog speed on the fly you would start the jog move change this parameter then issue a new jog command Ix23 Motor x Homing Speed and Direction Range floating point Default 32 0 Units Counts msec Remarks This parameter establishes the commanded speed and direction of a homing search move for motor x Changing the sign reverses the direction of the homing move a negative value specifies a home search in the negative direction a positive value specifies the positive direction 1x25 Motor x Limit Home Flag Amp Flag Address Range Extended legal PMAC X addresses Default Variable Hex Decimal Limit and Flag set 1125 C000 49152 LIMI HMFLI 1225 C004 49156 LIM2 HMFL2 8 gt 1325 C00 49160 LIM3 HMFL3 1425 cooc 49164 LIM4 HMFL4 Units Extended legal PMAC X addresses Remarks This parameter tells PMAC what set of flags it will look to for motor x s overtravel limit switches home flag amplifier fault flag amplifier enable output and index channel Typically these are the flags associated with an encoder input specifically those of the position feedback encoder for the motor If dual loop feedback is used Ix03 and Ix04 are different Ix25 should be set to match the position loop encoder not the velocity
284. mplete Home speed 10 cts msec negative direction Re enable LIM2 as limits Capture on flag low and index channel high Use HMFL2 home flag as trigger flag Do actual homing move Waits for Home Search to start Waits for Home motion to complete Disables PLC once Home is found End of PLC 5 0 Programming PMAC Already Into Home A similar situation occurs when you do not know on power up whether or not you are already into your home trigger Here the easiest solution is to write a program that evaluates this condition if it is in the trigger it moves out before doing the real homing ebb Motion Program Set up variables to be saved eeeeee CLOSE M320 gt X C008 20 1 Variable for HMFL3 input I325 CO008 Use Flags3 for Motor 3 peek Motion program to execute routine 4 OPEN PROG 103 CLEAR IF M320 1 Already in trigger I323 10 Home speed 10 cts msec positive direction I326 1600 Home offset 100 counts to make sure clear I912 11 Capture on falling flag and rising index I913 0 Use HMFL3 as flag HOME3 Home out of switch ENDIF I323 10 Home speed 10 cts msec negative direction I326z0 No home offset 1912 3 Capture on rising flag and rising index I913 0 Use HMFL3 as flag HOME3 Do actual homing move CLOSE End of program pepp C Set up variables to be saved eeeeeeeeeeeeeiejeierer CLOSE M320 gt X C008 20 1 Variable for HMFL3 input I325 CO008 Use Fl
285. mpound conditions in a PLC program WHILE M11 1 AND M12 1 OR M13 1 AND M14 1 AND P1 gt 0 ENDWHILE X data Function X Axis Move Type Motion program Syntax X data Page 247 10 Buffer Commands where data is a floating point constant or expression representing the position or distance in user units for the X axis Remarks This command causes a move of the X axis See axis data description above Examples X10 X15 Y20 X P1 Y30 X Q10 COS Q1 Y Q10 SIN Q1 X3 76 22 92 10 075 K3 42 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 Examples Y50 Y P100 X35 Y75 Y 0 221 23 475 Y ABS P3 P4 A INT P3 P4 Z data Function Z Axis Move Type Motion program Syntax z data where data isa floating point constant or expression representing the position or distance in user units for the W axis Remarks This command causes a move of the Z axis See axis data description above Examples Z20 Z Q25 X10 Y20 Z30 223 4 R10 5 Z P301 2 P302 P303 Page 248 Appendix Section Appendix 2 PMAC I VARIABLE SUMMARY Global I Variables 5 amp 5 ge 65 Units Serial Handshake Line Disable none
286. mutation algorithms performing the phasing search if necessary then leaving the motor in closed loop servo control at zero commanded velocity For non PMAC commutated motors a J jog stop or motor reset command for the motor an A abort command for all motors in the coordinate system or a lt CTRL A gt abort all command for all PMAC motors must be given to put the motor in closed loop servo control If Ix80 is 1 or 3 the motor is enabled automatically at power up reset and put in closed loop servo control at zero commanded velocity If a phasing search is required it is done automatically during the power up reset cycle If Ix80 is 0 or 1 and a phasing search is required PMAC will use the two guess phasing search method which is very quick and requires little movement but is not as reliable in the presence of significant external loads such as friction and gravity If Ix80 is 2 or 3 and a phasing search is required PMAC will use the stepper motor phasing search method which is takes more time and causes more movement but is more reliable in the presence of significant external loads 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 ph
287. n uni X5 P 5 t Pee H90msec 3 3000 SS 20000 50 300 15000 user_units msec F X5 0 P msee 3 3000 5 user units n 00 02 04 O8 O8 10 12 14 15 Time sec CLOSE Page 74 6 0 Motion Programs Other programming features Internal Timebase the feedrate override Each coordinate system has its own time base that helps control the speed of interpolated moves in that coordinate system If Ix93 is set at default this parameter could be changed by different means Son where 0 n 100 Online or CMD command that runs all motion commands in slow motion Yn wherel00 lt n lt 225 Online or CMD command that runs all motion commands proportionally faster 0 Online or CMD command that freezes all motions and timing in that C S 100 Online or CMD command that restores the real time reference 1 msec 1 msec MI97 110 Suggested M variable for timebase change Equal to 110 is 100 equal to 0 is 0 2 The variable Ix94 controls the rate at which the timebase changes Ix94 Where t is the slew rate time in msec t 59 Synchronous M Variable Assignment The scan of a motion program and execution of the commands in it are governed by the lookahead feature PMAC will calculate move commands ahead of time for a proper blending and will execute every instruction in between immediately This fact that the program lines are executed ahead of time would make an M variable assignment asyn
288. n be either a hardware input trigger if bit 17 of Ix03 is 0 or the motor warning following error status bit if bit 17 of Ix03 is 1 bit 16 of Ix03 should also be set to 1 in this case If a hardware input trigger is used Encoder Flag I variables 2 and 3 e g 1902 and 1903 for the flag channel specified by Ix25 determine which edge s of which flag s cause the trigger If the warning following error bit is used for torque limited triggering then Ix12 sets the size of the warning following error The speed of the move both before the trigger and after is set by Ix22 if 150 0 or by Ix16 if I50 1 The acceleration is set by Ix19 to Ix21 On the same line some axes may be specified for normal untriggered RAPID moves that will execute simultaneously If the move ends for a motor without a trigger being found the trigger move status bit bit 7 of the second motor status word returned on a command is left set after the end of the move If the trigger has been found this bit is cleared to 0 at the end of the move Examples X1000 0 X10 0 01 Y5 43 0 05 A P1 P2 B10 200 C P3 0 X10 axis data faxis data vector data vector data Function Circular Arc Move Specification Type Motion program PROG and ROT Syntax axis data axis data vector data vector data where axis is a character specifying which axis X Y Z A B C U V W data is a constant no parentheses or a
289. n both directions If not review that motor s setup 4 Have any motors been assigned to the coordinate system that 1s not really set up yet Every motor in the coordinate system must have its limits held low even if there is no real motor attached U Try the following steps for any other motion program problem 1 Type amp 1 100 in the terminal window 2 Check that you can appropriately Jog only one of the motors that you intend to use in your motion program 3 Type the following commands in a text editor to be downloaded to PMAC close Close any buffer opened delete gather Erase unwanted gathered data undefine all Erase coordinate definitions in all coordinate systems 1 gt 2000X Replace 1 for the motor you want to use and 2000 by the appropriate scale factor for the number of counts per user units OPEN PROG 1 CLEAR Prepare buffer to be written LINEAR Linear interpolation INC Incremental mode TA500 Acceleration time is 500 msec TSO No S curve acceleration component T2000 Total move time is 500 2000 2500 msec X1 Oneunit of distance 2000 encoder counts CLOSE Close written buffer program one 4 To run it press CTRL A and then type B1R in the terminal window 5 Repeat steps 2 through 4 for all the motors that you intend to run in your actual motion program A good method to test motion programs is to run them at lower than one hundred percent override rate Any value for n from 1 to 100
290. n can be resumed The J command can also be useful if a program has been aborted in the middle of a move because it will move the motor to the programmed move end position provided 113 0 so PMAC is not in segmentation mode so the program may be resumed properly from that point PMAC will reject this command if the motor is in a coordinate system that is currently running a motion program reporting ERRO01 if 16 is 1 or 3 Examples amp 1Q Stop motion program at end of move 15 Jog Motor 1 away from this position J Stop jogging J Jog back to position where program quit R Resume motion program amp 1A Stop motion program in middle of move 1J 2J 3J Move all motors to original move end position R Resume motion program J constant Function Jog to specified position Scope Motor specific Syntax 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 to the position specified by constant Jogging acceleration and velocity are determined by the values of Ix19 Ix22 in force at the time of this command 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 ERRO01 if I6 is 1 or 3 Examples J 0 Jog addressed motor to position 0 47 5000 Jog M
291. n expression in parentheses representing the end position or distance axis data isthe optional specification of simultaneous movement for more axes vector is a character I J or K specifying a vector component parallel to the X Y or Z axis respectively to the center of the arc or the character R specifying the magnitude of the vector data specifies the magnitude of the vector component vector data is the optional specification of more vector components 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 ina 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 This vector can either be referenced to the starting point of the move incremental radial vector mode Page 199 10 Buffer Commands the default or if an INC R command has been given or it can be referenced to the coordinate system origin absolute radial vector mode if an ABS R command has been given Alternatively just the magnitude of the vector to the center can be specified with R data on the command line If this is the case PMAC will calculate the location of the center itself If the value specified by
292. n points should be tied together at a single point star connection This point should then be tied with a single conductor to an earth ground point This form of grounding prevents ground loops and insures that all components are properly grounded against shock hazard Device 1 Device 2 Device 3 LE This configuration applies only for common ground connections and it does not apply for devices with opto isolation circuits If PMAC is powered with separate analog and digital power supplies the recommended method do not tie the PMAC analog and digital grounds together Page 19 3 0 Wiring Guidelines Opto isolation circuits Delta Tau provides several opto isolating boards allowing separate ground circuits Opto isolating accessories for encoder signals serial communications and digital inputs and outputs are available Example independent ground connections resulting in a ground loop L L serial connection L PMAC installed in a Laptop communicating desktop PC serially with PMAC Solution ACC 26A Serial isolator PMAC installed in a Laptop communicating desktop PC serially with PMAC In this case a serial communications isolator board will keep the laptop and desktop grounds separated avoiding a ground loop EMI Electromagnetic Interference Electromagnetic interference EMI is an electrical noise which creates a disturbance or undesired response in one or more circuits equipment s
293. n registers 59 6 0 MOTION PROGRAMS 61 Coordinate Systems 61 Axis definitions 61 Axis Definition Statements 62 Writing a MOTION PROGRAM 62 Running a MOTION PROGRAM 63 Subroutines and Subprograms 64 Passing Arguments to Subroutines 65 How PMAC Executes a Motion Program 65 Linear blended moves 66 Notes about linear interpolation moves 68 Circular Interpolation 70 Splined Moves 72 PVT Mode Moves 73 Other programming features Internal Timebase the feedrate override Synchronous M Variable Assignment Axis Transformation Matrices Learning a Motion Program 7 0 PLC PROGRAMS Entering a PLC Program PLC Program Structure Calculation Statements Conditional Statements Level Triggered Conditions 77 78 78 78 79 Edge Triggered Conditions 79 WHILE Loops COMMAND and SEND statements Timers 8 0 TROUBLESHOOTING SECTION Resetting PMAC to factory defaults The watchdog timer red LED Establishing communications General 79 80 80 83 83 Bus Communications Serial communications Motor parameters Motion programs PLC programs 9 0 I VARIABLES GLOBAL I VARIABLES Il Serial Port Mode I5 PLC Programs On Off I6 Error Reporting Mode I7 In Position Number of Cycles I8 Real Time Interrupt Period I9 Full Abbreviated Program Listing Form I3 Programmed Move Segmentation Time I5 Degree Radian Control for User Trig Functions I50 Rapid Mov
294. n searched for The search starts downward in the program to the end then continues if necessary from the top of the program down A variable GOSUB command permits the equivalent structure to the CASE statement found in many high level languages If the specified line label is not found the GOSUB command will be ignored and the program will continue as if the command had not occurred The CALL command is similar except that it can jump to another motion program Examples GOSUB300 jumps to N300 of this program to jump back on RETURN GOSUB8743 jumps to N8 743 of this program to jump back on RETURN GOSUB P17 jumpsto the line label of this program whose number matches the current value of P17 to jump back on RETURN GOTO Function Unconditional Jump Without Return Type Motion program PROG only Syntax GoTo data where data is an integer constant or expression with a value from 0 to 99 999 Page 218 10 Buffer Commands Remarks This command causes the motion program execution to jump to the line label N or O specified in data with no jump back If data is a constant the path to the label will have been linked before program run time so the jump is very quick If data is a variable expression it must be evaluated at run time and the appropriate label then searched for The search starts downward in the program to the end then continues if necessary from the top of the program down A
295. nate System I variables 0 8 388 607 Range Default 1 16 Count Units C S x Default Acceleration Time 0 8 388 607 0 so Ix88 controls msec C S x Default S Curve Time 0 8 388 607 50 msec C S x Default Feedrate positive floating point 1000 user position units feedrate time units C S x Feedrate Time Units positive floating point 1000 0 msec C S x Default Working Program Number 0 32 767 0 Motion Program Numbers C S x Move Blend Disable 0 1 0 none C S x Time Base Address PMAC X addresses see Ix93 table Legal PMAC addresses C S x Time Base Slew Rate 0 8 388 607 1644 23 2 msec servo cycle C S x FeedHold Decel Rate 0 8 388 607 1644 23 2 msec servo cycle C S x Circle Error Limit positive floating point 0 function disabled User length units Coordinate System x Maximum Feedrate Encoder Flag Setup I variables Non negative floating point 0 Default none Encoder 0 Decode Control 7 Encoder 0 Delay Filter Disable Encoder 0 Capture Control Encoder 0 Flag Select MACRO Support I variables Range 0 1 0 Units MACRO Node Auxiliary Register Enable FFFF 0 65 535 none MACRO Ring Check Period 255 servo cycles MACRO Type 1 Master Slave Comm Timeout servo cycles MACRO Ring Error Shutdown C
296. nate system Page 38 5 0 Programming PMAC Some on line commands do not depend on which motor or coordinate system is addressed For instance the command P1 1 sets the value of P1 to 1 regardless of what is addressed Among these global on line commands are the buffer management commands PMAC has multiple buffers one of which can be open at a time When a buffer is open commands can be entered into the buffer for later execution Control character commands those with ASCII values 0 31D are always global commands Those that do not require a data response act on all cards on a serial daisy chain These characters include carriage return CR backspace BS and several special purpose characters This allows for instance commands to be given to several locations on the card in a single line and have them take effect simultaneously at the CR at the end of the line ETR amp 2R CR causes both Coordinate Systems and 2 to run Buffered Program Commands As their name implies buffered commands are not acted on immediately but held for later execution PMAC has many program buffers 256 regular motion program buffers and 32 PLC program buffers Before commands can be entered into a buffer that buffer must be opened e g OPEN PROG 3 OPEN PLC 7 Each program command is added onto the end of the list of commands in the open buffer if you wish to replace the existing buffer use the CLEAR command immediately after op
297. nate system specific Syntax constant gt where constant is an integer from 1 to 8 representing the number of the motor whose axis definition is requested Remarks This command causes PMAC to report the current axis definition of the specified motor in the currently addressed coordinate system If the motor has not been defined to an axis in the currently addressed system PMAC will return a 0 even if the motor has been assigned to an axis in another coordinate system A motor can have an axis definition in only one coordinate system at a time Examples amp l cuesbieen Address Coordinate System 1 Bl x 22enes Request Motor 1 axis definition in C S 1 10000X iii PMAC responds with axis definition amp 2 ansi Address Coordinate System 2 Fl 22 28s Request Motor 1 axis definition in C S 2 PMAC shows no definition in this C S UNDEFINE ALL constant gt 0 Function Clear axis definition for specified motor Scope Coordinate system specific Syntax constant gt 0 where constant is an integer from 1 to 8 representing the number of the motor whose axis definition is to be cleared Remarks This command clears the axis definition for the specified motor ifthe motor has been defined to an axis in the currently addressed coordinate system If the motor is defined to an axis in another coordinate system this command will not be Page 132 9 0 Online Commands effective This allows
298. nction A value of 0 means disabled a value of 1 means enabled Following mode is specified by high bits of Ix05 This parameter can be changed on line through hardware inputs on the JPAN connector The FPDn motor coordinate system select lines low true BCD coded can turn Ix06 on and off On power up or reset if I2 was saved as zero Ix06 for the selected motor is set to one and Ix06 for all other motors is set to zero regardless of the values that were saved When the select switch is changed Ix06 for the de selected motor is set to zero and Ix06 for the selected motor is set to 1 Ix07 Motor x Master Handwheel Scale Factor Range 8 388 608 8 388 607 Default 96 Units none Remarks This parameter controls with what scaling the master handwheel encoder gets extended into the full length register In combination with Ix08 it also controls the following ratio of motor x delta motor x Ix07 Ix08 delta handwheel x for position following electronic gearing For following Ix07 and Ix08 can be thought of as the number of teeth on meshing gears in a mechanical coupling Ix07 can be changed on the fly to permit real time changing of the following ratio but Ix08 may not Ix08 Motor x Position Scale Factor Range 0 8 388 607 Default 96 Units none Remarks This parameter controls how the position encoder counter gets extended into the full length register For most purposes this is transparent to the user and do
299. nd 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 For multiple cards on a single serial daisy chain this command affects only the card currently addressed in software by the n command Example lt CTRL F gt 0 5 7 2 38 3 1 7 0 0 0 O lt CR gt lt CONTROL G gt Function Report global status word Scope Global Syntax ASCII Value 7D 07 Remarks This command causes PMAC to report the global status words to the host in hexadecimal ASCII form using 12 characters The characters sent are the same as if the command had been sent although no command acknowledgement character lt ACK gt or lt LF gt depending on I3 is sent at the end of the response The detailed meanings of the individual status bits are shown under the command description For multiple cards on a single serial daisy chain this command affects only the card currently addressed in software by the n command Example lt CTRL G gt 003000400000 lt CR gt lt CONTROL H gt Function Erase last character Scope Global Syntax ASCII Value 8D 08 lt BACKSPACE gt Remarks This character usually entered by typing the lt BACKSPACE g
300. nd point Page 119 6 0 I Variables ENCODER FLAG SETUP I VARIABLES One PMAC can have up to 16 incremental encoder channels 4 per gate array IC Each encoder and its related flags and registers are set up using up to 5 I variables The encoders and their flags are numbered 1 to 16 matching the numbers of their pinouts e g CHA1 CHB1 and CHCI belong to encoder 1 The encoder I variables are assigned to the different encoders as follows 1900 1904 Encoder 1 1905 1909 Encoder 2 1910 1914 Encoder 3 1915 1919 Encoder 4 1970 1974 Encoder 15 1975 1979 Encoder 16 An encoder is assigned to a motor for position velocity feedback handwheel master or feedpot frequency control by using the appropriate motor I variables see above 1900 1905 1975 Encoder n Decode Control Encoder I Variable 0 Range 0 15 Default 7 Units none Remarks This parameter controls how the input signal for Encoder n is decoded into counts As such this defines the sign and magnitude ofa count The following settings may be used to decode an input signal O pulse and direction CW 6 x2 quadrature decode CCW In any of the quadrature decode modes PMAC is expecting two input waveforms on CHAn and CHBn each with approximately 50 duty cycle and approximately one quarter of a cycle out of phase with each other Times one x1 decode provides one count per cycle x2 provides t
301. ng buffer to be erased The memory that was reserved is now deallocated and is available for other buffers motion programs PLC programs compensation tables etc If Data Gathering is in progress an ENDGATHER command has not been issued and the gather buffer has not been filled up PMAC will report an error on receipt of this command PMAC s Executive Program automatically inserts this command at the top of a file when it uploads a buffer from PMAC into its editor so the next download will not be hampered by an existing gather buffer It is strongly recommended that you use this command as well when you create a program file in the editor see Examples below When the executive program s data gathering function operates it automatically reserves the entire open buffer prog g 8 p y p 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 Page 155 9 0 Online Commands Examples CLOSE Make sure no buffers are open DELETE GATHER Free memory OPEN PROG 50 Open new buffer for entry CLEAR Erase contents of buffer Enter new contents here DELETE TBUF Function Delete buffer for axis transformation matrices Scope Global Syntax DELETE TBUF DEL TBUF Remarks This command frees up the space in PMAC s memory that was used for axis transformation matrices These matrices can be used for real t
302. nged ABS All axes made absolute radial vector left unchanged ABS R Radial vector made absolute all axes left unchanged faxis constant Function Re define the specified axis position Scope Coordinate system specific Syntax axis constant where axis isa letter from the set X Y Z U V W A B C specifying the axis whose present position is to be re named constant is a floating point value representing the new name value for the axis present position Page 151 9 0 Online Commands Remarks This command re defines the current axis position to be the value specified in constant in user units as defined by the scale factor in the axis definition It can be used to relocate the origin of the coordinate system This does not cause the specified axis to 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 Examples X 0 Call axis X s current position zero Z 5000 Re define axis Z s position as 5000 B constant Function Point the addressed coordinate system to a motion program Scope Coordinate system specific Syntax B constant where constant is a floating point value from 0 0 to 32767 99999 representing the program and location to point the coordinate system to with the integer part representing the program number and the fractional
303. nning a MOTION PROGRAM close delete gather undefine all 1 gt 2000X OPEN PROG 1 CLEAR LINEAR INC TA100 TSO F50 X1 CLOSE Close any buffer opened Erase unwanted gathered data Erase coordinate definitions in all coordinate systems Motor 1 is defined as axes X Open buffer to be written Linear interpolation Incremental mode Acceleration time is 100 msec No S curve acceleration component Feedrate is 50 Units per Ix90 msec One unit of distance 2000 encoder counts Close written buffer program one 1 Select the Coordinate System where the motion program will be running under This is done by issuing the command amp followed by the coordinate system number like amp 1 for the coordinate system one 2 Select the program that you want to run with the B constant command where the constant represents the number of the motion program buffer You must use the B command to change motion programs and after any motion program buffer has been opened You do not have to use it if you are repeatedly running the same motion program without modification when PMAC finishes executing a motion program the program counter for the coordinate system is automatically set to point to the beginning of that program ready to run it again 3 Once you are pointing to the motion program you wish to run you may issue the command to start execution of the program If you wish continuous execution of the program use the R command
304. nt further lines from being put in the buffer No other program buffers PLC fixed or rotary motion may be open when this command is sent PMAC will report ERROO7 if 16 1 or 3 It is a good idea always to precede an OPEN command with a CLOSE command to make sure no other buffers have been left open 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 16 1 or 3 Page 180 9 0 Online Commands Opening a PLC program buffer automatically disables that PLC program Other PLC programs and motion programs will keep executing Closing the PLC program buffer after entry does not re enable the program To re enable the program the ENABLE PLC command must be used or PMAC must be reset with a saved value of I5 permitting this PLC program to execute Examples CLOSE Make sure other buffers are closed DELETE GATHER Make sure memory is free OPEN PLC 7 Open buffer for entry disabling program CLEAR Erase existing contents IF M11 1 Enter new version of program CLOSE Close buffer at end of program ENABLE PLC 7 Re enable program 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
305. nt to finish will follow Remember COMMAND action statements are only processed during the communications section of the background cycle Suppose you want an input to stop any motion in a Coordinate System and start motion program 10 The following PLC could be used M187 gt Y 0817 17 1 amp 1 In position bit AND of motors OPEN PLC3 CLEAR IF M11 1 input is ON IF P1120 input was not ON last time P1121 set latch COMMAND amp 1A ABORT all motion WHILE M187 0 wait for motion to stop ENDW COMMAND amp 1B10R start program 10 ENDIF ELSE P11 0 reset latch ENDIF CLOSE Any SEND COMMAND or DISPLAY action statement should be done only on an edge triggered condition because the PLC can cycle faster than these operations can process their information and the communications channels can get overwhelmed if these statements get executed on consecutive scans through the PLC IF M11 1 input is ON IF P11 0 input was not ON last time COMMAND 17 JOG motor P11 1 set latch ENDIF ELSE P1120 reset latch ENDIF Timers Timing commands like DWELL or DELAY are only reserved to motion programs and cannot be used for timing purposes on PLCs Instead PMAC has four 24 bit timers that you can write to and count down once per servo cycle These timers are at registers X 0700 Y 0700 X 0701 and Y 0701 Usually a signed M variable is assigned to the timer a value is written to it representing the desired ti
306. nts cycle Motor x Velocity Feed Forward Gain 0 8 388 607 1280 Ix30 Ix08 2 DAC bits Counts cycle Motor x Integral Gain 0 8 388 607 Ix30 1x08 2 DAC bits counts cycles Motor x Integration Mode 0 1 none Motor x Acceleration Feed Forward Gain 0 8 388 607 Ix30 1x08 2 DAC bits counts cycle Motor x PID Notch Filter Coefficient N1 20 42 0 none actual z transform coefficient Motor x PID Notch Filter Coefficient N2 20 42 0 none actual z transform coefficient Motor x PID Notch Filter Coefficient D1 20 42 0 none actual z transform coefficient Motor x PID Notch Filter Coefficient D2 20 42 0 none actual z transform coefficient Motor x Extended Servo Loop I Variable Motor Servo Loop Modifiers Range Default Units Motor x Continuous Current Limit 0 32 767 0 Bits of a 16 bit DAC Motor x Integrated Current Limit 0 8 388 607 0 25 DAC bits servo cycles Motor x User Written Servo Enable 0 3 0 none Motor x Servo Cycle Period Extension 0 255 0 Servo Interrupt Periods Motor x Integration Limit 8 388 608 8 388 607 4194304 1 16 count Motor x Deadband Gain 32 768 32 767 0 no deadband none Motor x Deadband Size 0 32 767 16 21 count 1 16 count Motor x Position Error Limit 0 8 388 607 4 194 304
307. o Jumper Configuration Once an I O address on the PC expansion port has been selected the following procedure can be used for setting the address jumpers 1 Convert the address to a 3 digital hexadecimal value 000 to FFF representing 0 to 4095 If the value does not fit in this range you will not be able to set PMAC for this address Make sure the last digit is 0 only addresses divisible by 16 are permitted as PMAC base addresses 2 Take the first hex digit and convert it to binary The binary digits represent bits 11 through 8 of the base address Assign each binary digit to jumpers as follows HMsB i 9 S555 DgVaue 8 4 D 2 1 Setting for 1 Setting for 0 3 Take the second hex digit and convert it to binary The binary digits represent bits 7 through 4 of the base address Assign each binary digit to jumpers as follows Ms 6 3 488 DigitVaue 8 4 D 2 1 Setting for 1 Setting for 0 Example 1 You wish to set up the card to be at base address 992 decimal on the PC expansion bus 1 992 decimal is equal to 3E0 hexadecimal 2 The first digit of 3 is binary 0011 This sets E91 ON E92 ON E66 OFF E67 OFF 3 The second digit of E is binary 1110 This sets E68 OFF E69 OFF E70 OFF E71 ON Page 15 2 0 PMAC Jumper Configuration Example 2 You wish to set up the card to be at base address 528 decimal on the PC expansion bus 1 528 decimal is equal to
308. o exchange wires to get the desired polarity On a motor that is commutated by PMAC changing the sign of Ix30 has the effect of changing the commutation phase angle by 180 Negative values of Ix30 cannot be used with the autotuning programs in the PMAC Executive program Warning Changing the sign of Ix30 on a motor that has been closing a stable servo loop will cause an unstable servo loop leading to a probable runaway condition 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 The default value of 2000 for this parameter 1s exceedingly weak for most systems all but the highest resolution velocity loop systems causing sluggish motion and or following error failure Most users will immediately want to raise this parameter significantly even before starting serious tuning If the servo update time is changed Ix30 will have the same effect for the same numerical value However smaller update times faster update rates should permit higher values of Ix30 stiffer systems without instability problems Page 111 8 0 I Variables Ix31 Motor x PID Derivative Gain Range 8 388 608 8 388 607 Default 1280 Units Ix30 1x09 226 DAC bits Counts cycle Remarks This term subtracts an amount from the control output proportional to the measured velocity of motor x It acts effectively as an electroni
309. o notify the host computer of certain conditions If 162 0 PMAC automatically issues a carriage return CR character at the end of the message If 162 1 PMAC does not issue a CR character at the end of the message a SEND M must be used to issue ar CR in this case 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 Edge Triggered condition in a PLC program See Writing A PLC Program in chapter 3 for more details On the serial port it is possible to send messages to a non existent host by disabling the port handshaking with I1 1 SEND transmits over the active communications response port whether serial parallel host port PC Bus or STD Bus VME Bus port or ASCII DPRAM buffer SENDS always transmits over the serial port regardless of what is the current active response port Page 237 10 Buffer Commands SENDP always transmits over the parallel host port PC Bus or STD Bus regardless of which port is the current active response port 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
310. o the command If you wish to change speed or acceleration parameters of an active jog move change the appropriate parameter s then issue another jog command Page 49 5 0 Programming PMAC Jog Until Trigger The jog until trigger function permits a jog move to be interrupted by a trigger and terminated by a move relative to the position at the time of the trigger It is very similar to a homing search move except that the motor zero position is not altered and there is a specific destination in the absence of a trigger The jog until trigger function for a motor is specified by adding a constant specifier to the end of a regular definite jog command for the motor where this constant is the distance to be traveled relative to the trigger position before stopping in encoder counts It cannot be used with the indefinite jog commands J and J This makes the jog command for a jog until trigger something like J 10000 100 J 50 or J 50000 0 The value before the is the destination position or distance depending on the type of jog command to be traveled in the absence of a trigger If this first value is represented by a symbol PMAC looks in a pre defined register for the position or distance The second value is the distance to be traveled relative to the position at the time of the trigger This value is always expressed as a distance regardless of the type of jog command Both values are expressed in encoder c
311. o zero velocity finishes Block Request This bit is 1 when the motor has just entered a new move section and is requesting that the upcoming section be calculated It is 0 otherwise It is primarily for internal use Home Search in Progress This bit is set to 1 when the motor is in a move searching for a trigger a homing search move a jog until trigger or a motion program move until trigger It becomes as soon as the calculations for the move have started and becomes zero again as soon as the trigger has been found or if the move is stopped by some other means This is not a good bit to observe to see if the full move is complete because it will be 0 during the post trigger portion of the move Use the Home Complete and Desired Velocity Zero bits instead 9 0 Online Commands Bits 8 9 These bits are used to store a pointer to the next data block for motor calculations They are primarily for internal use Fifth and sixth characters returned Bits 0 7 These bits are used to store a pointer to the next data block for motor calculations They are primarily for internal use SECOND WORD RETURNED Y 0814 Y 08D4 etc Seventh character returned Bit 23 Assigned to C S This bit is 1 when the motor has been assigned to an axis in any coordinate system through an axis definition statement It is 0 when the motor is not assigned to an axis in any coordinate system Bits 20 22 C S I Number These three bits toge
312. oder number does not have to match the motor number but usually does If you do not have your PMAC plugged into a bus and drawing its 5V and GND from the bus use these pins to bring in 5V and GND from your power supply Connect the A and B quadrature encoder channels to the appropriate terminal block pins For encoder 1 the CHA1 is pin 25 CHBI is pin 21 f you have a single ended signal leave the complementary signal pins floating do not ground them However if single ended encoders are used please make sure that the corresponding jumpers E24 to E27 are set on position 1 2 For a differential encoder connect the complementary signal lines CHA1 is pin 27 and CHB1 is pin 23 The third channel index pulse is optional for encoder 1 CHC1 is pin 17 and CHC1 is pin 19 Example differential quadrature encoder connected to channel 1 JMACH1 E The Encoders screen of the EZ PMAC Setup Software allows checking the proper direction and x functioning of any encoder input in PMAC Termination Resistors The PMAC Lite provides sockets for termination resistors on differential input pairs coming into the board As shipped there are no resistor packs in these sockets If these signals are brought long distances into the PMAC Lite board and ringing at signal transitions is a problem 6 pin SIP resistor packs may be mounted in these sockets to reduce or eliminate the ringing All termination resistor packs are
313. of move commands Examples WHILE Q10 lt 10 Q10 Q10 1 ENDWHILE F data Function Set Move Feedrate Velocity Type Motion program PROG and ROT Syntax F data where data is a positive floating point constant or expression representing the vector velocity in user length units per user time units Remarks This statement sets the commanded velocity for upcoming LINEAR and CIRCLE mode blended moves It will be ignored in other types of moves SPLINE PVT and RAPID It overrides any previous TM or F statement and is overridden by any following TM or F statement The units of velocity specified in an F command are scaled position units as set by the axis definition statements per time unit defined by Feedrate Time Unit I variable for the coordinate system Ix90 The velocity specified here is the vector velocity of all of the feedrate axes of the coordinate system That is the move time is calculated as the vector distance of the feedrate axes square root of the sum of the squares of the individual axes divided by the feedrate value specified here The minimum effective feedrate value will provide a move time of 223 msec The maximum effective feedrate value will provide a move time of 1 msec Any non feedrate axes commanded to move on the same move command line will move at the speed necessary to finish in this same amount of time If the vector distance of a feedrate specified move is so short that the computed mo
314. og until trigger move The bit is set false 0 either when the trigger is found or at the end of the move PMAC also sets the motor trigger move status bit bit 7 of the second motor status word returned on a command true at the beginning of a jog until trigger move and keeps it true at least until the end of the move Ifa trigger is found during the move this bit is set false at the end of the post trigger move however if the pre trigger move finishes without finding a trigger the bit is left true at the end of the move Therefore this bit can be used at the end of the move to tell whether the trigger was found successfully or not The motor desired velocity zero status bit can be used to determine the end of the move Homing Search Moves Homing Acceleration The acceleration for homing search moves is controlled by the same parameters Ix19 Ix20 and Ix21 as for jogging moves These are described in the above section Page 50 5 0 Programming PMAC Homing Speed Homing speed and direction are specified by Ix23 If Ix23 is greater than zero the homing search move will be positive If it is less than zero the move will be negative The magnitude of Ix23 controls the speed of the move in counts msec Home Trigger Condition PMAC s homing search moves utilize the hardware position capture feature built in to the DSPGATE IC Because no software action is required to do the actual capture it is incredibly fast
315. ogram number Remarks This command causes PMAC to enable start executing the specified PLC program or programs 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 If a motion or PLC program buffer is open when this command is sent to PMAC the command will be entered into that buffer for later execution I variable I5 must be in the proper state to allow the PLC program s specified in this command to execute This command must be used to start operation of a PLC program after it has been entered or edited because the OPEN PLC command automatically disables the program and CLOSE does not re enable it Examples ENABLE PLC 1 ENA PLC 2 7 ENABLE PLC 3 21 ENABLE PLC 0 31 This example shows the sequence of commands to download a very simple PLC program and have it enabled automatically on the download OPEN PLC 7 CLEAR P1 P1 1 CLOSE ENABLE PLC 7 F Function Report motor following error Scope Motor specific Syntax F Page 157 9 0 Online Commands Remarks This command causes PMAC to report the present motor following error in counts rounded to the nearest tenth of a count to the host Following error is the difference between motor desired and measured position at any instant When the motor is open loop killed or enabled following error does not exist and PMAC reports a value of 0 Examples
316. ommand causes PMAC to list the program line s that it 1s 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 LIST PC just lists the next line to be calculated LIST PC lists from the next line to be calculated to the end ofthe program LIST PC constant lists the specified address range size starting at the next line to be calculated To see the current line of execution use the LIST PE command 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 If the coordinate system is not pointing to any motion program PMAC will return an error ERR003 if 16 1 or 3 Initially the pointing must be done with the B constant command Examples LIST PC List next line to be calculated P1 22 X10Y20 PMAC responds LIST PC 4 List next 4 words of program to be calculated P1 22 X10Y20 PMAC responds 24 X15Y30 LIST PC List rest of program P1 22 X10Y20 PMAC responds 24 X15Y30 26 M1 0 28 RETURN LIST PE Function List Program at Program Execution Scope Coordinate system specific Syntax LIST PE 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 starting with the
317. ommands 39 COMPUTATIONAL FEATURES 39 I variables 39 P Variables 40 Q Variables 40 M Variables 41 Array capabilities 42 Operators 42 Functions 43 Comparators 44 I variables setup 44 Motor definition I variables 44 Motor safety I variables 44 S curve and linear acceleration variables 45 Rate vs Time programming the maximum acceleration parameters 46 Benefits of using S curve acceleration profiles 46 Motor movement I variables 46 Servo Control I Variables 47 Coordinate System I variables 47 Encoder Flag Setup I variables 48 Encoder Conversion Table 48 Jogging Moves 48 Jog Acceleration 48 Jog Speed 49 Jog Commands 49 Indefinite Jog Commands 49 Jogging To A Specified Position 49 Jog Moves Specified By A Variable 49 Jog Until Trigger 50 Homing Search Moves 50 Homing Acceleration 50 Homing Speed 51 Home Trigger Condition 51 Specify Flag Set 51 Software Capture Option 51 Trigger Signal s amp Edge s 52 Torque Mode Triggering 52 Merits of Dual Trigger 52 Action on Trigger 53 Home Command 53 On Line Command 53 Monitoring for Finish 53 Monitoring for Errors 53 Buffered Program Command 53 Homing from a PLC Program 54 Motion vs PLC Program Homing 54 Zero Move Homing 54 Homing Into a Limit Switch 55 Multi Step Homing Procedures 56 Which Direction to Home 56 Already Into Home 57 Command and Send statements 58 PMAC positio
318. omputer language they combine values to produce new values PMAC uses the four standard arithmetic operators and The standard algebraic precedence rules are used multiply and divide are executed before add and subtract operations of equal precedence are executed left to right and operations inside parentheses are executed first Page 42 5 0 Programming PMAC PMAC also has the modulo operator which produces the resulting remainder when the value in front of the operator is divided by the value after the operator Values may be integer or floating point This operator is particularly useful for dealing with counters and timers that roll over When the modulo operation is done by a positive value X the results can range from 0 to X not including X itself When the modulo operation is done by a negative value X the results can range from X to X not including X itself This negative modulo operation is very useful when a register can roll over in either direction PMAC has three logical operators that do bit by bit operations amp bit by bit AND bit by bit OR and bit by bit EXCLUSIVE OR If floating point numbers are used the operation works on the fractional as well as the integer bits amp has the same precedence as and and have the same precedence as and Use of parentheses can override these default precedence Functions These perform mathematical operations on constants or expressi
319. on IDIS constant IF condition INC IROT constant J data K data LINEAR M constant expression M constant expression M constant amp expression M constant expression M constant expression N constant NORMAL O constant OR condition P constant expression PSET PVT data Q constant expression R data RAPID READ RETURN SEND 219 220 221 221 222 222 223 224 225 225 226 226 227 227 228 228 229 229 230 231 231 232 232 233 234 234 235 236 237 SEND letter SPLINEI SPLINE2 STOP TA data TINIT TM data TS data TSELECT constant U data V data Wi data WAIT WHILE condition X data Y data Z data APPENDIX SECTION 238 239 240 241 241 242 242 243 244 244 245 245 245 246 247 248 248 249 1 0 Introduction About this manual This manual is the main source of information for installing and programming the Universal PMAC Lite motion controller for a typical application A typical application in this case is composed of up to four amplifiers each requiring a single 10 Volts differential command signal or DAC a single quadrature incremental encoder per motor and a maximum of 8 general purpose digital inputs and outputs The different sections on this manual are ordered in the following sequence Description of PMAC capabilit
320. on If 113 0 no move segmentation the moves will be linearly interpolated Examples LINEAR Linear interpolation mode X10Y0 F2 Linear move CIRCLE2 Counterclockwise circular interpolation mode X20 Y10 J10 Arc of 10 unit radius X15 Y15 I 5 Arc of 5 unit radius CIRCLE1 Clockwise circle mode X5 Y25 J10 Arcmove of 10 unit radius COMMAND command Function Program Command Issuance Type Motion program PROG and ROT PLC program Syntax COMMAND command CMD command Remarks This statement causes the program to issue a command to PMAC as if it came from the host except for addressing modes If there is a motor or coordinate system specifier n or amp n within the quoted string a motor or coordinate system specific command will be directed to that motor or coordinate system If there is no specifier a motor or coordinate system specific command will be directed to the first motor or coordinate system Any specifier within a COMMAND statement is not modal it does not affect the host addressing specifications or the modal addressing of any program including its own If 162 0 PMAC automatically issues a carriage return CR character at the end of any data response to the command If 162 1 PMAC does not issue a CR character at the end of the data response a SEND M must be used to issue ar CR in this case Each PLC program has its own addressing mode for both motors and coordina
321. on Report Program Execution Pointer Scope Coordinate system specific Syntax PE Remarks This command causes PMAC to report the motion program number and address offset of the currently executing programmed move in the addressed coordinate system This is similar to the PC command which reports the program number and address offset of the next move to be calculated Since PMAC is calculating ahead in a continuous sequence of moves PC will in general report a move line several moves ahead of PE If the coordinate system is not pointing to any motion program PMAC will return an error ERR003 if 1671 or 3 Initially the pointing must be done with the B constant command Examples PE PI 2 PE PI 5 PMATCH Function Re match Axis Positions to Motor Positions Scope Coordinate system specific Syntax PMATCH Page 185 9 0 Online Commands Remarks 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 However if a motor move function such as a jog move an open loop move or a stop on abort or limit was done since the last axis move or home PMAC will not automatically know that the axis position has changed If an axis move is then attempted without the use of the PMATCH command PMAC will use the wrong axis
322. ons Except for the PMATCH function calculations go only from axis commanded positions to motor commanded positions not the other way around Page 61 6 0 Motion Programs More than one motor may be assigned to the same axis in a coordinate system This is common in gantry systems where motors on opposite ends of the cross piece are always trying to do the same movement By assigning multiple motors to the same axis a single programmed axis move in a program causes identical commanded moves in multiple motors This is commonly done with two motors but up to eight motors have been used in this manner with PMAC Remember that the motors still have independent servo loops and that the actual motor positions will not necessarily be exactly the same An axis in a coordinate system can have no motors attached to it a phantom axis in which case programmed moves for that axis cause no movement although the fact that a move was programmed for that axis can affect the moves of other axes and motors For instance if sinusoidal profiles are desired on a single axis the easiest way to do this is to have a second phantom axis and program circularly interpolated moves Axis Definition Statements A coordinate system is established by using axis definition statements An axis is defined by matching a motor which is numbered to one or more axes which are specified by letter The simplest axis definition statement is something like 1 gt
323. ons to yield new values The general format 1s function name expression The available functions are SIN COS TAN ASIN ACOS ATAN ATAN2 SQRT LN EXP ABS and INT Whether the units for the trigonometric functions are degrees or radians is controlled by the global I variable I15 SIN This is the standard trigonometric sine function COS Thisis the standard trigonometric cosine function TAN _ This is the standard trigonometric tangent function ASIN This is the inverse sine arc sine function with its range reduced to 90 degrees ACOS This is the inverse cosine arc cosine function with its range reduced to 0 180 degrees ATAN This is the standard inverse tangent arc tangent function This is an expanded arctangent function which returns the angle whose sine is the expression in parentheses and whose cosine is the value of QO for that coordinate system If doing the calculation in a PLC program make sure that the proper coordinate system has been ADDRESSed in that PLC program Actually it is only the ratio of the magnitudes of the two values and their signs that matter in this function It is distinguished from the standard ATAN function by the use of two arguments The advantage of this function is that it has a full 360 degree range rather than the 180 degree range of the single argument ATAN function ATAN2 LN This is the natural logarithm function log base e This is the exponentiation function
324. ontents of the specified memory word address or range of addresses to the host it is essentially a PEEK command The command can specify either short 24 bit word s in PMAC s X memory short 24 bit word s in PMAC s Y memory or long 48 bit words covering both X and Y memory X word more significant This choice is controlled by the use of the X Y or L address prefix in the command respectively If the letter H is used after the R in the command PMAC reports back the register contents in unsigned hexadecimal form with 6 digits for a short word and 12 digits for a long word If the letter H is not used PMAC reports the register contents in signed decimal form Examples RHX 49152 Request contents of X register 49152 C000 in hex 8FA017 PMAC responds in unsigned hex note no RHX C000 Request contents of X reg C000 49152 in hex 8F4017 PMAC responds in unsigned hex RX 49152 Request contents of same register in decimal 7389161 PMAC responds in signed decimal RX C000 Request contents of same register in decimal 7389161 PMAC responds in signed decimal RXO Request contents of servo cycle counter in decimal 2953211 PMAC responds in signed decimal RL 0028 Request contents of 1 cmd pos reg in decimal 3072000 PMAC responds 71000 counts RHY1824 12 Requestset up words of the conversion table 00C000 00C004 00CO0O08 00COOC 00C0O10 00CO14 00C018 00CO1C 400723 0000295 000000 000000 PMAC responds in
325. or 1 ADIS constant Function Absolute displacement of X Y and Z axes Type Motion program PROG and ROT Syntax ADIS constant where constant is an integer constant representing the number of the first of three consecutive Q variables to be used in the displacement vector Remarks This command loads the currently selected with TSEL transformation matrix for the coordinate system with offset values contained in the three 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 to the values of these variables X Q data Y Q data 1 Z Q data 2 This command does not cause any movement of any axes it simply renames the present positions This command is almost equivalent toa PSET X Q data Y Q data 1 2 Q data 2 command except that ADIS does not force a stop between moves as PSET does Examples Q20 7 5 Page 202 10 Buffer Commands Q21z212 5 Q22 25 ADIS 20 This makes the current X position 7 5 Y 12 5 Z25 AND condition Function Conditional AND Type PLC program only Syntax AND condition where condition isa simple or compound condition Remarks This statement forms part of an extended compound IF or WHILE condition to be evaluated in a PLC program It must immediately follow an IF WHILE AND or OR statement This AND is a Boolean operator logically combining the
326. or is in a coordinate system that is executing a motion program the program execution must be stopped with either an A abort or Q quit command before PMAC will accept the K command For multiple cards on a single serial daisy chain this command affects all cards on the chain regardless of the current software addressing lt CONTROL M gt Function Enter command line Scope Gobal Syntax ASCII Value 13D 0D CR Page 126 9 0 Online Commands Remarks This character commonly known as CR 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 CR character to execute Note that for multiple PMACS daisy chained together on a serial interface this will act on all cards simultaneously not just the software addressed card For simultaneous action on multiple cards it is best to load up the command line receive buffers on all cards before issuing the CR character Example 13 lt CR gt P1 lt CR gt 0 amp 1B1R 1 amp 1B7R lt CR gt This causes card 0 on the serial daisychain to ssec un ted etestesent have its CS 1 execute PROG 1 and card 1 to pone have its CS 1 execute PROG 7 simultaneously lt CONTROL O gt 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
327. ors in command lines When I6 is set to 0 or 2 PMAC reports any error only with a BELL character When I6 is 0 the BELL character is given for invalid commands issued both from the host and from PMAC programs using CMD command When I6 is 2 the lt BELL gt character is given only for invalid commands from the host there is no response to invalid commands issued from PMAC programs In no mode is there a response to valid commands issued from PMAC programs Page 90 6 0 I Variables When I6 is set to 1 or 3 an error number message can be reported along with the lt BELL gt character The message comes in the form of ERRnnn lt CR gt where nnn represents the three digit error number If I3 is set to 1 or 3 there is a lt LF gt character in front of the message When I6 is set to 1 the form of the error message is BELL error message This setting is the best for interfacing with host computer driver routines When I6 is set to 3 the form of the error message is BELL CR error message This setting is appropriate for use with the PMAC Executive Program in terminal mode Currently the following error messages can be reported Command not allowed during program execution e Pogan EXCEUUOB ASIE ISSUE ERROO2 Should enter the proper password ERR003 Data error or unrecognized command Should correct syntax of command ERRO04 Illegal character bad value 2127 ASCII or Should correct the character and or
328. osition or distance in user units for the U axis Remarks This command causes a move of the C axis See axis data description above Program commands axis data A B U V W X Y Z CALL READ Page 205 10 Buffer Commands 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 99999 with the integer part representing the motion program number to be called and the fractional part representing the line label N or O within the program to be called the line label number is equal to the fractional part multiplied by 100 000 every motion program has an implicit NO at the top letter is any letter of the English alphabet except N or O representing the variable into which the value following it will be placed Q101 to Q126 for A to Z respectively following data is a floating point constant or expression representing the value to be put into the variable Remarks This command allows the program to execute a subprogram and then return execution to the next line in the program A subprogram is entered into PMAC the same as a program and is labeled as PROGn so one program can call another as a subprogram The number n of the PROG heading is the one to which the value after CALL refers CALL7 would execute PROG7 and return Commanding execution of a non ex
329. ot all the letter values in the CALL line are read the READ statement stops as soon as it sees a letter in the calling line that is not in its list of letters to read the remaining letter commands are executed upon return from the subroutine according to their normal function For example G01 X10 Y10 is equivalent toa CALL 1000 01 X10 Y10 To implement the normal function for G01 linear move mode there would be the following subroutine in PROG 1000 N1000 LINEAR RETURN 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 line label do not exist the CALL command is ignored and the program continues as if it were not there Examples CALL500 to Prog 500 at the top NO Page 206 10 Buffer Commands CALL500 1 to Prog 500 label N10000 CALL500 12 to Prog 500 label N12000 CALL500 123 to Prog 500 label N12300 CALL500 1234 to Prog 500 label N12340 CALL500 12345 to Prog 500 label N12345 CALL700 D10 E20 to Prog 700 passing D and E 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 The program is taken out of this circular m
330. otor 4 to 5000 counts 8J 32000 Jog Motor 8 to 32000 counts Function Jog to specified variable position Scope Motor specific Page 166 9 0 Online Commands Syntax J Remarks This command causes the addressed motor to jog to the position specified in the motor s variable jog position distance register Jogging acceleration and velocity are determined by the values of Ix19 Ix22 in force at the time of this command The variable jog position distance register is a floating point register with units of counts It is best accessed with a floating point M variable The register is located at PMAC address L 082B for motor 1 L 08EB for motor 2 etc The usual procedure is to write the destination position to this register by assigning a value to the M variable then issuing the J command Virtually the same result can be obtained by writing to the motor target position register and issuing the J command However using the J command permits you to return to the real target position afterwards without having to restore the target position register Also the J command uses a register whose value is scaled in counts not fractions of a count PMAC will reject this command if the motor is in a coordinate sytem that is currently running a motion program reporting ERRO01 if I6 is 1 or 3 Examples M172 gt L 082B Define 1 variable jog position distance reg M172 3000 Assign position value to register
331. ould not exceed the 6 inches in length Flat cable shielding When using shielded flat cables it is convenient to select a rounded cable with IDC connectors in both sides With the addition of ground bars this configuration makes a good reliable shielded connection Shield Page 21 3 0 Wiring Guidelines Basic rules for proper wiring 1 2 3 4 5 6 7 8 9 Take the time to sketch the system out before you begin the install This graphic representation of the installation will help you to avoid introducing ground loops and will serve as a road map for eliminating noise if it is present Don t introduce ground loops Ground loops are created whenever a ground reference is established at more than one location Never run signal wires alongside power cables This is especially true in installations where high powered amplifiers are used Large amplifiers are capable of drawing large currents These currents vary the electromagnetic field surrounding the power cable The more current that flows through the wire the bigger this field becomes If signal cables are located in close proximity to this fluctuating electromagnetic field noise could be induced into the system Do not route signal and power wiring through common junctions Consider using double shielded cables if there is no way to separate the wires apart Use a shielded signal cable connecting only one end of the shield preferably the so
332. ount MACRO ring errors MACRO Ring Sync Packet Shutdown Count 0 0 0 255 2 0 65 535 Page 2 of 2 MACRO sync packets Appendix 5 Motor Suggested M variable Definitions Registers associated with Encoder DAC Motor 1 Motor 2 Motor 3 Motor 4 Motor 5 Motor 6 Motor 7 Motor 8 ENC 24 bit counter position M101 gt X C001 0 24 S M201 gt X C005 0 24 S M301 gt X C009 0 24 S M401 gt X C00D 0 24 S M501 gt X C011 0 24 S M601 gt X C015 0 24 S M701 X C019 0 24 8 M801 gt X C01D 0 24 S DAC 16 bit analog output M102 gt Y C003 8 16 S M202 gt Y C002 8 16 S M302 gt Y C00B 8 16 S M402 gt Y CO0A 8 16 S M502 gt Y C013 8 16 S M602 gt Y C012 8 16 S M702 gt Y C01B 8 16 S M802 gt Y C01A 8 16 S ENC capture compare position register M103 gt X C003 0 24 S M203 gt X C007 0 24 S M303 gt X C00B 0 24 S M403 gt X COO0F 0 24 S M503 gt X C013 0 24 S M603 gt X C017 0 24 S M703 gt X C01B 0 24 S M803 gt X C01F 0 24 S ENC interpolated position 1 32 ct M104 gt X 0720 0 24 S M204 gt X 0721 0 24 S _ M304 gt X 0722 0 24 S M404 X 0723 0 24 8 M504 9X 0724 0 24 8 _ M604 gt X 0725 0 24 S _ M704 gt X 0726 0 24 S M804 gt X 0727 0 24 S ADC 16 bit analog input M105 gt Y C006 8 16 S M205 gt Y C007 8 16 S M305 gt Y CO0E 8 16 S M4
333. ount When PMAC detects this transition it will read the present feedback position as the trigger position then move relative to this position In a homing search move the relative distance is specified by Ix26 in units of 1 16 count In a jog until trigger the distance is specified by the second value in the jog command the value after the arrow in units of counts In a motion program move until trigger the distance is specified by a second value in the axis command the value after the arrow in user axis units In many cases it is desirable in these types of moves to set the Ix69 command output to a lower value representing the torque or force limit to ensure that this limit is not exceeded at any time during the move before or after the trigger Note that if the warning following error status bit is true at the start of the move the trigger will occur almost immediately Merits of Dual Trigger Itis common practice to use a combination of a homing switch and the index channel as the home trigger condition The index channel of an encoder while precise and repeatable is not unique in most applications because the motor can travel more than one revolution The homing switch while unique is typically not extremely precise or repeatable By using a logical combination ofthe two you can get uniqueness from the switch and precision and repeatability from the index channel In this scheme the homing switch is effectively used to
334. ounts The trigger condition for the motor is set up just as for homing search moves e x03 bit 17 specifies whether input flags are used to create the trigger or the warning following error limit status bit is the trigger torque limited triggering 0 flags 1 error status e If input flags are to create the trigger Ix25 specifies the flag register e If input flags are to create the trigger Encoder Flag I variables 2 and 3 for this set of flags specify which edges of which signals will cause the trigger e x03 bit 16 specifies whether the hardware captured counter value is used as the trigger position suitable for incremental encoder signals real or simulated or the software read position is used instead suitable for other types of feedback 0 hardware 1 software The software read position must be used if the following error status is used for the trigger PMAC will use the jog parameters Ix19 Ix22 in force at the time of the command for the pre trigger move and the values of these parameters in force at the time of the trigger for the post trigger move The captured value of the sensor position at the trigger is stored in a dedicated register if later access is needed The units are in counts for incremental encoders they are relative to the power up reset position PMAC sets the motor home search in progress status bit bit 10 of the first motor status word returned on a command true 1 at the beginning of a j
335. output is apportioned between the two DAC outputs for the motor according to the instantaneous commutation phase angle If the value specified is outside the range 100 the output will saturate at 100 of Ix69 Closed loop control for the motor can be re established with the J command It is a good idea to stop the motor first with an O0 command if it has been moving in open loop mode To do a variable O command define an M variable to the filter result register X 003A etc command an 00 to the motor to put it in open loop mode then assign a variable value to the M variable This technique will even work on PMAC commutated motors PMAC will reject this command if the motor is in a coordinate system that is currently running a motion program reporting ERROO1 if 16 is 1 or 3 Examples 050 Open loop output 50 of Ix69 for addressed motor 2033 333 Open loop output 1 3 of Ix69 for Motor 2 00 Open loop output of zero magnitude J Re establish closed loop control OPEN PLC Function Open a PLC program buffer for entry Scope Global Syntax OPEN PLC constant where constant is an integer from 0 to 31 representing the PLC program to be opened Remarks This command causes PMAC to open the specified PLC program buffer for entry and editing This permits subsequent program lines that are valid for a PLC to be entered into this buffer When entry of the program is finished the CLOSE command should be used to preve
336. ove mode by another move mode command the other CIRCLE mode LINEAR PVT RAPID etc Any circular move command must have either an R or an IJK vector specification otherwise it will be performed as a linear move even when in CIRCLE mode Note PMAC must be in move segmentation mode 11320 in order to perform circular interpolation If 113 0 no move segmentation the moves will be linearly interpolated Examples LINEAR Linear interpolation mode X10Y10 F2 Linear move CIRCLE1 Clockwise circular interpolation mode X20 Y20 110 Arc of 10 unit radius X25 Y15 J 5 Arc of 5 unit radius LINEAR Go back to linear mode X25 Y5 Linear move CIRCLE2 Function Set Blended Counterclockwise Circular Move Mode Type Motion program PROG and ROT Syntax CIRCLE2 CIR2 Remarks The CIRCLE2 command puts the program into counterclockwise 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 The program is taken out of this circular move mode by another move mode command the other CIRCLE mode LINEAR PVT RAPID etc Any circular move command must have either an R or an IJK vector specification otherwise it will be performed as a linear move even when in CIRCLE mode Page 207 10 Buffer Commands Note PMAC must be in move segmentation mode 11320 in order to perform circular interpolati
337. owing encoder 2 in offset mode 1105 should be set to 10721 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 Note It is important not to have the same source be both the master and the feedback for an individual motor If this is the case with Ix06 1 to enable following the motor will run away it is like a puppy chasing its tail it cannot catch up to its desired position because its desired position keeps moving ahead of it This case can easily occur for motor 2 with the default values of 1203 and 1205 specifying the same address If you want to ensure that following cannot occur by accident you may want to change Ix05 so it points to a register that cannot change This way even if the following function gets turned on for instance by the motor selector inputs on the Page 98 6 0 I Variables JPAN connector no following can occur The best registers to use for this purpose are the unused ones at the end of the conversion table With the default table setup you can choose any register between 072A and 073F 1834 to 1855 decimal If you extend the table choose a register between the end of the table and 073F Ix06 Motor x Master Handwheel Following Enable Range 0 1 Default 0 Units none Remarks This parameter disables or enables motor x s position following fu
338. plies automatically come through the bus connector from the bus power supply in this case this terminal block should not be used It is strongly recommended to use an external power supply that will keep the digital and analog circuits separate and that will provide better electrical noise isolation to PMAC If you desire to keep Ww the optical isolation between the digital and analog circuits on PMAC you must provide analog power 12V to 15V amp AGND through the JMACH connector instead of the bus connector or this terminal block Page 36 5 0 Programming PMAC PMAC is fundamentally a command driven device you make PMAC do things by issuing it ASCII command text strings and PMAC generally provides information to the host in ASCII text strings These text strings are typed and sent from a terminal window of a program communicating with PMAC either by the ISA bus or the RS 232 422 serial port The EZ PMAC Setup Software for example provides such terminal window When PMAC receives an alphanumeric text character over one of its ports it does nothing but place the character in its command queue It requires a control character ASCII value 1 to 31 to cause it to take some actual action The most common control character used is the carriage return CR ASCII value 13 which tells PMAC to interpret the preceding set of alphanumeric characters as a command and to take the appropriate action It
339. position condition of each active motor during the housekeeping part of every background cycle which occurs between each scan of each enabled uncompiled background PLC PLC 1 31 All motors in a coordinate system must have true in position bits for the coordinate system in position bit to be set true Page 91 6 0 I Variables 18 Real Time Interrupt Period Range 0 255 Default 2 Units Servo Interrupt Cycles Remarks This parameter controls how often certain time critical tasks such as PLC 0 and checking for motion program move planning are performed A value of 2 means that they are performed after every third servo interrupt 3 means every fourth interrupt and so on The vast majority of users can leave this at the default value In some advanced applications that push PMAC s speed capabilities tradeoffs between performance of these tasks and the calculation time they take may have to be evaluated in setting this parameter A large PLC 0 with a small value of I8 can cause severe problems because PMAC will attempt to execute the PLC program every I8 cycle This can starve background tasks including communications background PLCs and even updating of the watchdog timer for time leading to erratic performance or possibly even shutdown 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 s
340. progress ERRO11 stop move e g with J Open loop motor in coordinate system ERRO12 close loop with J or A Inactivated motor in coordinate system ERR013 change Ix00 to 1 or remove motor from coordinate system No motors in the coordinate system ERRO14 put at least 1 motor in C S Fixed motion program buffer open ERRO15 close buffer and point to program No program pointed to ERRO15 point to program with B command Program structured improperly ERRO16 correct program structure Motor s not at same position as stopped with or command ERRO17 move back to stopped position with J Examples amp 1B1R C S 1 point to PROG 1 and run amp 2B200 06 C S2 point to N6000 of PROG 200 and run Q Quit this program R Resume running from point where stopped H Do a feed hold on this program R Resume running from point where stopped R H address Function Report the contents of a specified memory address es Scope Global Syntax R H address constant Page 188 9 0 Online Commands where address consists ofa letter X Y or L an option colon and an integer value from 0 to 65535 in hex 0000 to SFFFF specifying the starting PMAC memory or I O address to be read 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 c
341. proportional gain SAVE Save to non volatile memory Reset and re initialize card I130 Request value of 1130 2000 PMAC reports current value which is default Normal reset of card I130 Request value of 1130 60000 PMAC reports current value which is SAVEd value Function Report the addressed coordinate system s feedrate override value Scope Coordinate system specific Syntax Remarks This command causes PMAC to report the present feedrate override time base value for the currently addressed coordinate system A value of 100 indicates real time i e move speeds and times occur as specified Page 136 9 0 Online Commands PMAC will report the value in response to this command regardless of the source of the value even if the source is not the constant command Example o Request feedrate override value 00 PMAC responds 100 means real time Command a feed hold Request feedrate override value PMAC responds 0 means all movement frozen oo mH nc e y o constant Function Set the addressed coordinate system s feedrate override value Scope Coordinate system specific Syntax constant where constant is a non negative floating point value specifying the desired feedrate override time base value 100 represents real time Remarks This command specifies the feedrate override value for the currently addressed coordinate system The rate of chan
342. r 1 using flags 5 with amp enable output and high true amp fault disabling only this motor 1125 C0C010 Ix26 Motor x Home Offset Range 8 388 608 8 388 607 Default 0 Units 1 16 Count Remarks This is the relative position of the end of the homing cycle to the position at which the home trigger was made That is the motor will command a stop at this distance from where it found the home flag s and call this commanded location as motor position zero This permits the motor zero position to be at a different location from the home trigger position particularly useful when using an overtravel limit as a home flag offsetting out of the limit before re enabling the limit input as a limit If large enough greater than 1 2 times home speed times accel time it permits a homing move without any reversal of direction The units of this parameter are 1 16 of a count so the value should be 16 times the number of counts between the trigger position and the home zero position Example If you wish your motor zero position to be 500 counts in the negative direction from the home trigger position you would set 1x26 to 500 16 8000 Ix27 Motor x Position Rollover Range Range 0 8 388 607 Default 0 Units Counts Remarks This parameter permits position rollover on a PMAC rotary axis by telling PMAC how many encoder counts are in one revolution of the rotary axis This lets PMAC handle rollover properly When Ix27 is greater
343. r for a different purpose than controlling an actual physical motor Motor safety I variables Ix11 Motor x Fatal Following Error Limit this variable setup the maximum number of counts of allowed following error before the motor is shutdown Setting Ix11 to zero could lead to a dangerous motor runaway condition If for example the encoder feedback information is lost PMAC will shutdown the motor when the following error exceeds Ix11 and so will prevent the motor to runaway in an uncontrollable fashion Page 44 5 0 Programming PMAC Ix13 Motor x Software Position Limit this variable determines the maximum allowed range of motion in the positive direction Enabling this function is useful when no actual end of travel limit switches are used Ix14 Motor x Software Position Limit this variable determines the maximum allowed range of motion in the negative direction Enabling this function is useful when no actual end of travel limit switches are used Ix15 Motor x Abort Lim Deceleration Rate this parameter set the deceleration rate used when a programmed motion is aborted either by the A abort command or when a maximum position limit is reached Ix16 Motor x Maximum Velocity this parameter setup the maximum allowed velocity for a motor performing a linear move commanded from a motion program This maximum value is not observed if variable 113 is greater than zero Ix17 Motor x Maximum Accelera
344. r in the coordinate system to the original end position of the aborted move provided 113 is 0 no segmentation mode Examples B1R Start Motion Program 1 A Abort the program 1J 2J Jog motors to original move end position R Resume program with next move ABS Function Select absolute position mode for axes in addressed coordinate system Scope Coordinate system specific Syntax ABS ABS axis axis where axis isa letter X Y Z A B C U V W representing the axis to be specified or the character R to specify radial vector mode Remarks This command without any arguments causes all subsequent positions for all axes in the coordinate system in motion commands to be treated as absolute positions this is the default condition An ABS command with arguments causes the specified axes to be in absolute mode and all others to remain unchanged If R is specified as one of the axes the I J and K terms of the circular move radius vector specification will be specified in absolute form i e as a vector from the origin not from the move start point An ABS command without any arguments does not affect this vector specification The default radial vector specification is incremental Ifa motion program buffer is open when this command is sent to PMAC the command will be entered into the buffer for later execution Examples ABS X Y X amp Y made absolute other axes and radial vector left uncha
345. r numbered DAC of the commutation algorithm In addition to the primary use of compensating for analog offsets it can be used in certain phasing search or phasing direction algorithms for permanent magnet brushless motors because it drives the motor like a stepper motor Ix29 can be used to create a torque offset for a motor not commutated by PMAC For a motor commutated by PMAC use the Output Offset register Y 0045 etc instead it is also suitable for a motor not commutated by PMAC Servo Control I Variables The servo control variables in the range Ix30 Ix69 have different meanings on a PMAC with the Option 6 Extended Servo Algorithm For a PMAC with Option 6 refer to the manual for Option 6 for descriptions of the variables in this range 1x30 Motor x PID Proportional Gain Range 8 388 608 8 388 607 Default 2000 Units Ix08 219 DAC bits Encoder count Remarks This term provides a control output proportional to the position error commanded position minus actual position of motor x Itacts effectively as an electronic spring The higher Ix30 is the stiffer the spring is Too low a value will result in sluggish performance Too high a value can cause a buzz from constant over reaction to errors 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 t
346. r to be able to blend moves together calculating a second move ahead is necessary 1f proper acceleration and velocity limiting is to be done or a three point spline is to be calculated SPLINE mode For linear blended moves with 113 move segmentation time equal to zero disabled PMAC calculates two moves ahead because the velocity and acceleration limits are enabled here In all other cases PMAC is calculating one move ahead no moves ahead two moves ahead one move ahead RAPID LINEAR with 113 0 LINEAR with I1320 HOME SPLINEI CIRCLE DWELL PVT p1s step through the program Ix92 1 blending disabled When a Run command is given and every time the actual execution of programmed moves progresses into a new move a flag is set saying it is time to do more calculations in the motion program for that coordinate system At the next RTI if this flag is set PMAC will start working through the motion program processing each command encountered This can include Page 65 6 0 Motion Programs multiple modal statements calculation statements and logical control statements Program calculations will continue which means no background tasks will be executed until one of the following conditions occurs 1 The next move a DWELL command or a PSET statement is found and calculated 2 End of or halt to the program e g STOP is encountered 3 Two jumps backward in the program from ENDWHILE or GOTO are p
347. ram command This does not set the motor position registers to zero it changes motor position bias registers to reflect the new offset between motor zero positions and axis zero positions However the motor reported positions will reflect the new bias and report positions of zero the following error Examples lt CTRL P gt Ask for reported motor positions 2001 5002 3000 0 0 0 0 0 PMAC reports positions Z Zero axis positions lt CTRL P gt Ask for reported motor positions again 1 2 100000 PMAC responds Page 195 9 0 Online Commands Page 196 11 Buffer Commands The PMAC motion controller is very rich in features and expansion capabilities Because this manual illustrates the implementation of PMAC in a typical application some of the PMAC Ww advanced buffer commands are not described Further information of all the PMAC buffer commands can be obtained from the PMAC Software Reference manual axis data axis data Function Position Only Move Specification Type Motion program PROG and ROT Syntax axis data axis data 1 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 isthe optional specification of simultaneous movement for more axes Remarks This is the basic PMAC move specification st
348. re 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 Second the actual time for DELAY does varies with a changing time base current value from whatever source whereas DWELL always uses the fixed time base 100 Third PMAC precomputes upcoming moves and the lines preceding them during a DELAY but it does not do so during a DWELL Page 210 10 Buffer Commands A DELAY command is equivalent to a zero distance move of the time specified in milliseconds As for a move if the specified DELAY time 1s less than the acceleration time currently in force TA or 2 TS the delay will be for the acceleration time not the specified DELAY time Examples DELAY750 DELAY Q1 100 DISABLE PLC constant constant Function Disable PLC Program s Type Motion program PROG or ROT PLC program Syntax DISABLE PLC constant constant DISABLE PLC constant constant DIS PLC constant constant DIS PLC constant constant Remarks This command disables the operation of the specified PLC program s The programs are specified by number and can be used singly in a list separated by commas or in a continuous range Disabling a PLC cannot stop the PLC in the middle of a scan it prevents it from starting the next scan Examples DISABLE PLC 1 DISABLE PLC 4 5 DISABLE PLC 7 20
349. re blended together with no intervening stop Upcoming moves are calculated during the current moves If this parameter is set to 1 there is a brief stop in between each programmed move it effectively adds a DWELL 0 command during which the next move is calculated The calculation time for the next move is determined by I11 This parameter is only acted upon when the R or S command is given to start program execution To change the mode of operation while the program is running the continuous motion request coordinate system status bit bit 4 of X 0818 etc must be changed The polarity of this bit is opposite that of Ix92 Ix94 Coordinate System x Time Base Slew Rate and Limit Range 0 8 388 607 Default 1644 Units 2 23 msec servo cycle Remarks This parameter controls the rate of change of the coordinate system s time base It effectively works in two slightly different ways depending on the source of the time base information If the source of the time base is the command register then Ix94 defines the rate at which the 94 actual time base value will slew to a newly commanded value If the rate is too high and the value is changed while axes in the coordinate system are moving there will be a virtual step change in velocity For these type of applications Ix94 is set relatively low often 1000 to 5000 to provide smooth changes The default Ix94 value of 1644 when used on a card set up with the default servo cycle
350. reconfigured differently in PMAC Usually a passive normally close switch is used If a proximity switch is needed instead use a 15 Volts normally closed to ground NPN sinking type sensor JMACH1 JMACH1 JMACH1 Lim 51 JEQU PIN 9 Lim 15V Output 51 59 E 12 24V Qg Dry Contact 12 15 Volts proximity 15 24 Volts proximity E89 ON E89 ON E89 OFF E90 1 2 E90 1 2 E90 1 2 Home switches While normally closed to ground switches are required for the overtravel limits inputs the home switches could be either normally close or normally open types The polarity is determined by the home sequence setup through the I variables 1902 1907 1977 However for the following reasons the same type of switches used for overtravel limits are recommended Normally closed switches are proven to have greater electrical noise rejection than normally open types Using the same type of switches for every input flag simplifies maintenance stock and replacements Page 24 4 0 Machine Connections Motor signals connections Incremental Encoder Connection The JMACH connector provides two 5V outputs and two logic grounds for powering encoders and other devices The 5V outputs are on pins 1 and 2 the grounds are on pins 3 and 4 The encoder signal pins are grouped by number all those numbered 1 CHA1 CHA1 CHB1 CHCI etc belong to encoder 1 The enc
351. representing the value to be ANDed with this M variable Remarks This command is equivalent to M constant M constant amp expression except that the bit by bit AND and the assignment of the resulting value to the M variable do not happen until the start of the actual execution of the following Page 227 10 Buffer Commands motion command The expression itself is evaluated when the program line is encountered as in a non synchronous statement 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 Examples M20 amp FE Mask out LSB of byte M20 M346 amp 2 Clear all bits except bit 1 M constant expression Function M Variable Or 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 expression is a mathematical expression representing the value to be ORed with this M variable Remarks This form is equivalent to M constant M constant expression except that the bit by bit OR and the assignment of the resulting value to the M variable do not happen until the start of the following servo command The expression itself is evaluated when the program line is encountered as in a non synchronous statement Remember that if you use this M variable in fu
352. rigger you are when you power up In this case you must move into one of the limit switches to make sure you are at one end of travel this can be done by homing into the limit much as in the above example Then you can do a homing move the other direction into the real home trigger A sample Motion Program routine that does this is CLOSE OPEN PROG 102 CLEAR I223 10 I225 2C004 I223 10 I225 C004 I907 11 Home speed 10 cts msec positive direction Disable LIM2 as limits No home offset Capture on rising edge of a flag Use LIM2 as flag positive end limit Home into limit Home speed 10 cts msec negative direction Re enable LIM2 as limits Capture on flag low and index channel high Use HMFL2 home flag as trigger flag Do actual homing move A sample PLC Program routine that does this is CLOSE M233 gt X 0079 13 1 M245 gt Y 08D4 10 1 OPEN PLC 11 CLEAR I223 10 I225 2CO004 CMD 2HM WHILE M245 1 ENDWHILE WHILE M233 0 ENDWHILE I223 10 I225 sc004 I907 11 CMD 2HM WHILE M245 1 ENDWHILE WHILE M233 0 ENDWHILE DIS PLC11 Desired Velocity Zero bit Home complete bit Home speed 10 cts msec positive direction Disable LIM2 as limits No home offset Capture on rising edge of a flag Use LIM2 as flag positive end limit Home into limit Waits for Home Search to start Waits for Home motion to co
353. rks This parameter controls how the encoder counter used to close the velocity servo loop gets extended into the full length register For most purposes this is transparent to the user and does not need to be changed from the default This parameter should not be changed in the middle of an application because it scales many internal values If the same sensor is used to close both the position and velocity loops Ix03 Ix04 Ix09 should be set equal to Ix08 If different sensors are used Ix09 should be set such that the ratio of Ix09 to Ix08 is inversely proportional to the ratio of the velocity sensor resolution at the load to the position sensor resolution Example Ifa 5000 line inch 20 000 cts in linear encoder is used for position feedback and a 500 line rev 2000 cts rev rotary encoder is used for velocity loop feedback and there is a 5 pitch screw the effective resolution of the velocity encoder is 10 000 cts in 2000x5 half of the position sensor resolution so Ix09 should be set to twice Ix08 If the value computed this way for Ix09 does not come to an integer use the nearest integer value Motor Safety I Variables Ix11 Motor x Fatal Shutdown Following Error Limit Range 0 8 388 607 Default 32000 2000 counts Units 1 16 Count Remarks This parameter sets the magnitude of the following error for motor x at which operation will shut down When the magnitude of the following error exceeds Ix11 motor x is dis
354. rly to finish in the same time The most commonly used planes are NORMAL K 1 XY plane equivalent to G17 NORMAL J 1 ZX plane equivalent to G18 NORMAL I 1 YZ plane equivalent to G19 To put the program in circular mode use the program command CIRCLE1 for clockwise arcs G02 equivalent or CIRCLE2 for counterclockwise arcs G03 equivalent LINEAR will restore you to linear blended moves Once in circular mode a circular move is specified with a move command specifying the move endpoint and either the vector to the arc center or the distance radius to the center The endpoint may be specified either as a position or as a distance from the starting point depending on whether the axes are in absolute ABS or incremental INC mode individually specifiable X Data Y Data R Data Radius of the circle is given X Data y Data I Data J Data Center coordinates of the circle are given If the vector method of locating the arc center is used the vector is specified by its I J and K components T specifies the component parallel to the X axis J to the Y axis and K to the Z axis This vector can be specified as a distance from the starting point i e incrementally or from the XYZ origin i e absolutely The choice is made by specifying R inan ABS or INC statement e g ABS R or INC R This affects I J and K specifiers together ABS and INC without arguments affect all axes but leave the vectors unchanged The d
355. rmitted Motor Program Acceleration Range positive floating point Default 0 5 Units counts msec Remarks This parameter sets a limit to the allowed acceleration in LINEAR mode blended programmed moves for motor x provided 113 equals zero no move segmentation Ifa LINEAR move command in a motion program requests a higher acceleration of this motor given its TA and TS time settings the acceleration for all motors in the coordinate system is stretched out proportionately so that motor x will not exceed this parameter yet the path will not be changed Because PMAC cannot look ahead through an entire move sequence it sometimes cannot anticipate enough to keep acceleration within this limit Refer to LINEAR mode trajectories in Writing a Motion Program It is possible to have this limit govern the acceleration for all LINEAR mode moves by setting very low TA and TS times Do not set both the TA and TS times to zero or a division by zero error will occur in the move calculations possibly causing erratic movement The minimum acceleration time settings that should be used are TA1 with TSO When moves are broken into small pieces and blended together this limit can affect the velocity because it limits the calculated deceleration for each piece even if that deceleration 1s never executed because it blends into the next piece This limit does not affect PVT CIRCLE RAPID or SPLINE moves The calculation does not take into account any
356. rovide better electrical noise isolation to PMAC Page 23 4 0 Machine Connections Flags Power Supply optional Each channel of PMAC has four dedicated digital inputs on the machine connector LIMn LIMn overtravel limits HMEFLn home flag and FAULTn amplifier fault In the Universal PMAC Lite these inputs can be kept isolated from other circuits A power supply from 12 to 24 Volts connected on pin 9 of J8 could be used to power the corresponding opto isolators In this case jumper E89 must be removed and jumper E90 must connect pins 1 2 Overtravel limits and Home switches When assigned for the dedicated uses these signals provide important safety and accuracy functions LIMn and LIMn are direction sensitive overtravel limits which must be actively held low sourcing current from the pins to ground to permit motion in their direction The direction sense of LIMn and LIMn is as follows LIMn should be placed at the negative end of travel and LIMn should be placed at the positive end of travel The Flags screen of the EZ PMAC Setup Software allows the setup and monitoring the end of m travel limit flags These flags must be disabled or properly connected to allow motion of the corresponding motor Types of overtravel limits PMAC expects a closed to ground connection for the limits to not be considered on fault This arrangement provides a failsafe condition and therefore it cannot be
357. rsion of program Page 181 9 0 Online Commands CLOSE Close buffer at end of program amp 1B255R Point to this program and run it P Function Report motor position Scope Motor specific Syntax P Remarks This command causes PMAC to report the present actual position for the addressed motor to the host scaled in counts rounded to the nearest tenth of a count PMAC reports the value of the actual position register plus the position bias register plus the compensation correction register and if bit 16 of Ix05 is 1 handwheel offset mode minus the master position register Examples P Request the position of the addressed motor 1995 PMAC responds 1P Request position of Motor 1 0 5 PMAC responds 2P 4P Request positions of Motors 2 and 4 9998 PMAC responds with Motor 2 position first 10002 PMAC responds with Motor 4 position next P constant Function Report the current P variable value s Scope Global Syntax P constant constant where constant is an integer from 0 to 1023 representing the number of the P variable the optional second constant must be at least as great as the first constant it represents the number of the end of the range Remarks This command causes PMAC to report the current value of the specified P variable or range of P variables Examples P1 Host asks for value 25 PMAC responds P1005 3 444444444 P100 102 17 5 373 0 0005
358. rther expressions before the next move in the program is started you will not get the value assigned in this statement Examples M20 01 Set low bit of byte M20 leave other bits M875 FF00 Set high byte leaving low byte as is M constant expression Function M Variable XOR Equals Assignment Type Motion program PROG and ROT Syntax M data expression where constant is an integer constant from 0 to 1023 representing the number of the M variable expression is a mathematical expression representing the value to be XORed with this M variable Remarks This form is equivalent to M constant M constant expression except that the bit by bit XOR and the assignment of the resulting value to the M variable do not happen until the start of the following servo command The expression itself is evaluated when the program line is encountered as in a non synchronous statement Page 228 10 Buffer Commands 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 Examples M20 FF Toggle all bits of byte M20 M99 80 Toggle bit 7 of M99 leaving other bits as is N constant Function Program Line Label Type Motion program PROG and ROT Syntax N constant where constant is an integer from 0 to 262 143 218 1 Remarks This is a label for a line in the progr
359. ry with no pre defined use However the meaning of a given Q variable and hence the value contained in it is dependent on which coordinate system is utilizing it This allows several coordinate systems to use the same program for instance containing the line X Q1 25 Y Q2 but to do have different values in their own Q variables which in this case means different destination points Several Q variables have special uses that you need to watch for The ATAN2 two argument arctangent function automatically uses QO as its second argument the cosine argument The READ command places the values it reads following letters A through Z in Q101 to Q126 respectively and a mask word denoting which variables have been read in Q100 The S spindle statement in a motion program places the value following it into Q127 Based on that and since a total of 1024 Q variables are shared between potentially 8 Coordinate Systems 128 variables each the practical range of the Q variables to be safely used in motion programs is therefore Q1 to Q99 The set of Q variables you are working with in a command depends on the type of command When you are accessing a Q variable from an on line immediate command from the host you are working with the Q variable for the currently host addressed coordinate system with the amp n command When you are accessing a Q variable from a motion program statement you are working with the Q variable belonging to the coord
360. s Normally a PLC program executes all the way from beginning to end within a single scan The exception to this rule occurs if the program encounters a true WHILE condition In this case the program will execute down to the ENDWHILE statement and exit this PLC After cycling through all of the other PLCs it will re enter this PLC at the WHILE condition statement not at the beginning This process will repeat as long as the condition is true When the WHILE condition goes false the PLC program will skip past the ENDWHILE statement and proceed to execute the rest of the PLC program If we want to increment our counter as long as the input is true and prevent execution of the rest of the PLC program we could program Page 79 7 0 PLC Programs WHILE M11 1 P1 P1 1 ENDWHILE This structure makes it easier to hold up PLC operation in one section of the program so other branches in the same program do not have to have extra conditions so they do not execute when this condition is true Contrast this to using an IF condition see above COMMAND and SEND statements One of the most common uses of PLCs is to start motion programs and Jog motors by means of command statements Some COMMAND action statements should be followed by a WHILE condition to ensure they have taken effect before proceeding with the rest of the PLC program This is always true if a second COMMAND action statement that requires the first COMMAND action stateme
361. s 3 The CLEAR command empties the currently opened program PLC rotary etc buffer 4 Many ofthe statements in PMAC motion programs are modal in nature These include move modes which specify what type of trajectory a move command will generate this category includes LINEAR RAPID CIRCLE PVT and SPLINE 5 Moves can be specified either incrementally distance or absolutely location individually selectable by axis with the INC and ABS commands Move times TA TS and TM and or speeds F are implemented in modal commands Modal commands can precede the move commands they are to affect or they can be on the same line as the first of these move commands 6 The move commands themselves consist of a one letter axis specifier followed by one or two values constant or expression All axes specified on the same line will move simultaneously in a coordinated fashion on execution of the line consecutive lines execute sequentially with or without stops in between as determined by the mode Depending on the modes in effect the specified values can mean destination distance and or velocity 7 Ifthe move times TA TS and TM and or speeds F are not specifically declared in the motion program the default parameters from the I variables Ix87 Ix88 and Ix89 will be used instead You are strongly encouraged not to rely on Page 62 6 0 Motion Programs these parameters and to declare your move times in the program This will k
362. s Writing to X registers has two main uses First some MACRO nodes are in X registers Second for cascaded loops the output of one loop can become the input to another loop and master or feedback inputs are expected in X registers Page 96 6 0 I Variables Ix03 Motor x Position Loop Feedback Address Range Extended legal PMAC X addresses Variable Hex Decimal Encoder 0 2 Default 1103 072 1824 converted ENC1 1203 0721 1825 converted ENC2 1303 072 1826 converted ENC3 1403 0723 1827 converted ENC4 Units Extended legal PMAC X addresses Remarks This parameter tells the PMAC where to look for its feedback to close the position loop for motor x Usually it points to an entry in the Encoder Conversion Table where the values from the encoder counter registers have been processed at the beginning of each servo cycle possibly to include sub count data This table starts at address 0720 1824 decimal It is shipped from the factory configured as shown in the default table above For a motor with dual feedback motor and load use x03 to point to the encoder on the load and Ix04 to point to the encoder on the motor If the position loop feedback device is the same device as is used for commutation with PMAC doing the commutation then it must also be specified for commutation with Ix83 However Ix83 should specify the address of the encoder counter itself not the
363. s larger than the number of counts at which the limit will occur For example if the limit 1s to be 1000 counts Ix12 should be set to 16 000 Ix13 Motor x Positive Software Position Limit Range 247 Default 0 Units Encoder Counts Remarks This parameter 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 This limit is automatically de activated during homing search moves until the home trigger is found It is active during the post trigger move Page 101 6 0 I Variables Starting in firmware 1 15 bit 17 of Ix25 does not de activate the software limits Permanent de activation is done by setting the value of the software limit to zero This limit is referenced to the most recent power up zero position or homing move zero position The physical position at which this limit occurs is not affected by axis offset commands e g PSET X although these commands will change the reported position value at which the limit occurs Ix14 Motor x Negative Software Position Limit Range 247 Default 0 Disabled Units Encoder Counts Remarks This parameter sets the position for motor x which if exceeded in the negative direction causes a
364. s not at the stop point ERRO17 6 Before starting the program is convenient to issue a CTRL A command to PMAC to ensure that all the motors will be potentially in closed loop and that all previous motions are aborted Also if in doubt the functioning of each motor could be check individually prior to run a program by means of Jog commands For example 13 2000 will make motor 1 move 2000 encoder counts and that would be a way to confirm if the motors are able to run motion programs or not 7 All motors in the addressed coordinate system have to be ready to run a motion program Depending on Ix25 even if one motor defined in the coordinate system is not closing the loop all motors in the coordinate system could be brought down impeding of running any motion program 8 Sometimes the feedrate override for the current addressed coordinate system is set at zero and no motion will occur in result of this Check the feedrate override parameter by issuing a amp 1 command on the terminal window replace 1 for the appropriate coordinate system number If is zero or too low set it to an appropriate value The amp 1 100 command will set it to 100 96 9 For troubleshooting purposes it is a good technique to change the feedrate override to a lower than 100 value If the program is run for the first time a preceding 10 command could be issued to run the motion program in slow motion Running the program slowly will allow o
365. s selected This matrix must already have been created with the on line DEFINE TBUF command That command specifies the number of matrices to create and it must have specified a number at least as high as the number used in TSEL you cannot select a matrix that has not been created TSELO deselects all transformation matrices saving calculation time Examples DEFINE TBUF 5 Create 5 transformation matrices OPEN PROG 10 CLEAR TSEL 3 Select transformation matrix 3 of 5 TINIT Make matrix 3 the identity matrix U data Function U Axis Move Type Motion program Syntax u data where data isa floating point constant or expression representing the position or distance in user units for the U axis Remarks This command causes a move of the U axis See axis data description above Examples U10 U P17 2 345 X20 U20 U COS Q10 V SIN Q10 Page 244 10 Buffer Commands V data Function V Axis Move Type Motion program PROG and ROT Syntax v data where data isa 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 Examples V20 U56 5 V P320 Y10 V10 V SQRT Q20 Q20 Q21 Q21 Wi data Function W Axis Move Type Motion program Syntax w data where data isa floating point constant or expression representing the position or
366. s specified PMAC assumes a value of 0 0 Note that no space is allowed between the motor number and the arrow double character Remarks This command assigns the specified motor to a set of axes in the addressed coordinate system It also defines the scaling and starting offset for the axis or axes In the vast majority of cases there is a one to one matching between PMAC motors and axes so this axis definition statement only uses one axis name for the motor A scale factor is typically used with the axis character so that axis moves can be specified in standard units e g millimeters inches degrees This number is what defines what the user units will be for the axis If no scale factor is specified a user unit for the axis is one motor count Occasionally an offset parameter is used to allow the axis zero position to be different 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 Ifthe specified motor is currently assigned to an axis in the addressed coordinate system the old definition will be overwritten by this new one Page 133 9 0 Online Commands To undo a motor s axis definition address the coordinate system in which it has been defined and use the command
367. same line does not require an ENDIF so the ENDIF would be matched with a previous IF statement Examples IF P170 X1000 ENDIF IF P577 X1000 ELSE X2000 ENDIF ENDWHILE Function Mark End of Conditional Loop Type Motion program PROG only PLC program Syntax ENDWHILE ENDW Remarks This statement marks the end of a conditional loop of statements begun by a WHILE statement WHILE loops can be nested so an ENDWHILE statement matches the most recent WHILE statement not already matched by a previous ENDWHILE statement In a motion program a WHILE statement with an action on the same line does not require a matching ENDWHILE In the execution of a PLC program when an ENDWHILE statement is encountered that scan of the PLC is ended and PMAC goes onto other tasks communications other PLCs The next scan of this PLC will start at the matching WHILE statement Page 215 10 Buffer Commands 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 The pertinent result is that PMAC will not blend moves when it hits two ENDWHILE statements or the same ENDWHILE twice between execution
368. sists of the letter L an optional colon and the word address Memory locations for which this format is useful are labeled with L in the memory map Examples M165 gt L 081F M265 gt L 0820 M265 gt L2080 M constant gt X Y address Function Short Word M Variable Definition Scope Global Syntax M constant constant gt X address offset width ormat 11 M constant constant gt Y address o set width ormat 1 where constant is an integer from 0 to 1023 representing the number of the M variable 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 offset is an integer constant from 0 to 23 representing the starting least significant bit of the word to be used in the M variable s or 24 to specify the use of all 24 bits width optional is an integer constant from the set 1 4 8 12 16 20 24 representing the number of bits from the word to be used in the M variable s if width is not specifed a value of 1 is assumed format optional is a letter from the set U S D C specifying how PMAC is to interpret this value U Unsigned integer S Signed integer D Binary coded Decimal C Complementary binary coded decimal if format is not specified U is assumed Remarks T
369. ssed with a floating point M variable The register is located at PMAC address L 082B for motor 1 L 08EB for motor 2 etc The usual procedure is to write the destination position to this register by assigning a value to the M variable then issuing the J command PMAC will reject this command if the motor is in a coordinate sytem that is currently running a motion program reporting ERR001 ifI6 is 1 or 3 Page 168 9 0 Online Commands Examples M172 gt L 082B Define 1 variable jog position distance reg 1HMZ Declare present position to be zero M172 3000 Assign distance value to register 10 Jog Motor 1 this distance if following error atcommand was 3 end cmd pos will be 2997 10 Jog Motor 1 this distance if following error at command was 2 end cmd pos will be 5995 M172 P1 SIN P2 Assign new distance value to register 10 Jog Motor 1 this distance 1J Return to prejog target position jog command constant Function Jog until trigger Scope Motor specific Syntax J constant J constant constant J constant constant J constant constant J constant J constant J constant where constant after the is a floating point value specifying the distance from the trigger to which to jog after the trigger is found in encoder counts Remarks This command format permits a jog until trigger function When the constant structure is added to any
370. ssion representing the position or distance in user units for the U axis Remarks This command causes a move of the A axis See axis data descriptions above Examples A10 A P23 A25 B10 235 A 20 SIN Q5 ABS Function Absolute Move Mode Type Motion program PROG and ROT Syntax ABS axis axis where axis is a character X Y Z A B C U V W representing the axis to be specified or the character R to specify radial vector mode Remarks The ABS command without arguments causes all subsequent positions in motion commands for all axes in the coordinate system running the motion program to be treated as absolute positions This is known as absolute mode and it is the power on default condition An ABS statement with arguments causes the specified axes in the coordinate system running the program to be in absolute mode and all others stay the way they were before If R is specified as one of the axes the I J and K terms of the circular move radius vector specification will be specified in absolute form i e as a vector from the origin not from the move start point An ABS command without any arguments does not affect this vector specification The default radial vector specification is incremental Ifno motion program buffer is open when this command is sent to PMAC it will be executed as an on line coordinate system command Examples ABS X Y ABS ABS V ABS R ADDRESS Function
371. st uro eue ERROO6 No room in buffer for command should allow more room for buffer omm mitis prime or Craan oner balen pias first MACRO Link error Register X 0798 holds the error value 009 Program structural error e g should correct structure of program ERRO10 Both overtravel limits set for a should correct or disable limits ET Oi m complete ERRO12 A motor in the coordinate system should close the loop on the motor E Oe ERRO13 A motor in the coordinate system should set Ix00 to 1 or remove motor ERRO14 No motors in the coordinate should define at least one motor in system CS ERRO15 Not pointing to valid program should use B command first or clear buffer out scrambled buffers ERRO16 Running improperly structured should correct structure of program program e g missing ENDWHILE ERRO17 Trying to resume after or V with should use J to return motor s to motors out of stopped position stopped position orldwide Leadership in Motion Control mE Odo t USA vos Cons Headgaren USA Europe Delta Tau Data Systems Inc Delta Tau Europa 21314 Lassen St Rheinweg 4 CH 8200 Chatsworth CA 91311 Schaffhausen Switzerland U S A Tel 41 52 625 2088 PH 818 998 2095 Fax 41 52 625 4482 FAX 818 998 7807 E mail bradp deltatau com E MAIL support deltatau com Headquartors Branch Offices Representatives Distributors OPERERET R PMAC Japan 13 10 Nihonbash
372. stance you cannot jog any motor in the coordinate system executing the program because all these motors are considered to be running in the program even if the program is not requesting a move of the motors at that time When issuing commands from a program be sure to include all the necessary syntax motor and or coordinate system specifiers in the command statement or use the ADDRESS command For example use CMD 4HM and CMD amp 1A instead of CMD HM and CMD A Otherwise motor and coordinate system commands will be sent to the most recently addressed motor and coordinate system which may not always be as you intended Examples COMMAND 1J CMD 4HM CMD amp 1B5R CMD PI 47 5 ADDRESS 3 COMMAND J IF M40 1 AND M41 1 CMD amp 4R M41 0 ENDIF COMMAND letter Function Program Control Character Command Issuance Type Motion program PROG or ROT PLC program Syntax COMMAND letter cMD letter where letter isa 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 Note Do not put the up arrow character and the letter in quotes do not use COMMAND A or PMAC will attempt to issue a command with the two non control characters and A for this example instea
373. stant the addressed coordinate system the one on which on line coordinate system commands will act The addressing is modal so all further coordinate system specific commands will affect this coordinate system until a different coordinate system is addressed At power up reset Coordinate System 1 is addressed Note that a different coordinate system may simultaneously be hardware selected from the control panel port for coordinate system specific control panel inputs and that different coordinate systems may be addressed from programs within PMAC for COMMAND statements If the control panel inputs are disabled by I2 1 the host addressed coordinate system also controls the indicator lines for the in position warning following error and fatal following error functions These indicator lines connect to both control panel port outputs all PMAC versions and to the interrupt controller PMAC PC PMAC Lite PMAC STD If 2 0 the hardware selected coordinate system controls these lines Example amp 1B4R C S 1 point to Beginning of Prog 4 and Run Q C S 1 Quit running program amp 3B6R C S3 point to Beginning of Prog 5 and Run A C S 3 Abort program amp Function Report currently addressed coordinate system Scope Global Syntax amp Remarks This command causes PMAC to return the number of the coordinate system currently addressed by the host Note that a different coordinate system may be hardware selected from
374. t The contents are reported in ASCII text form If I9 is 0 or 2 the contents are reported in short form e g ENDW If I9 is 1 or 3 the contents are reported in long form e g ENDWHILE PLCs 0 15 can be protected by password Ifthe PLC is protected by password and the proper password has not been given PMAC will reject this command reporting an ERR002 if 16 1 or 3 Examples LIST PLC 0 LIST PLC 5 LIST PROGRAM Function List the contents of the specified motion program Scope Global Syntax LIST PROGRAM constant start length Page 173 9 0 Online Commands LIST PROG constant start length where constant is an integer from 1 to 32767 specifying the number of the motion program the optional start parameter is an integer constant specifying the distance from the start of the buffer in words of memory to begin the listing 0 is the default the optional length parameter after a comma is an integer constant specifying the number of words of the buffer to be sent to the host to the end of the buffer is the default Remarks This command causes PMAC to report the contents of the specified fixed motion program buffer PROG 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 19 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 t
375. t key when talking to PMAC in terminal mode causes the most recently entered character in PMAC s command line receive buffer to be erased Page 125 9 0 Online Commands lt CONTROL I gt Function Repeat last command line Scope Global Syntax ASCII Value 9D 09 lt TAB gt Remarks This character sometimes entered by typing the lt TAB gt 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 Note Most versions of the PMAC Executive Program trap a lt CTRL I gt or lt TAB gt for their own purposes and do not send it on to PMAC even when in terminal mode Example This example shows how the tab key can be used to look for some event PC lt CR gt P1 10 lt CR gt lt TAB gt P1 10 lt CR gt lt TAB gt P1 10 lt CR gt lt TAB gt P1 11 lt CR gt lt CONTROL K gt Function Kill all motors Scope Global Syntax ASCII Value 11D 0B Remarks This command kills all motor outputs by opening the servo loop commanding zero output and taking the amplifier enable signal AENAn false polarity is determined by jumper E17 for all motors on the card If any motion programs are running they will automatically be aborted For the motor specific K kill command if the mot
376. t a trigger occur when an obstruction such as a hard stop is encountered To support this type of functionality PMAC permits triggering on a warning following error condition instead of an input flag This is sometimes called torque mode triggering because it effectively triggers on a torque level except for velocity mode amplifiers because output torque command is proportional to following error It is also called a torque limited mode because it provides an easy way to create moves that are limited in torque and that stop when the torque limit is reached To enable this torque mode triggering set bit 17 of the position loop feedback address I variable Ix03 to 1 Bit 16 of Ix03 should also be set to 1 to tell PMAC to use the software read position on a capture instead of the hardware latched position because there is no input signal to latch the position in this mode Bits 0 15 contain the actual address of the feedback For example the default value of 1103 is 0720 specifying the address of the first entry in the encoder conversion table and specifying signal based triggering If 1103 is changed to 30720 the same register is used for feedback but now torque mode triggering is specified In this mode the trigger for a homing search move or a move until trigger is a true state of the warning following error status bit for the motor The warning following error magnitude for the motor is set by Ix12 with units of 1 16 of a c
377. t flag The EZ PMAC Setup Software has a dedicate screen for the configuration of the homing I variables Encoder Conversion Table The PMAC Encoder Conversion table is a method to adapt the different kind of feedback information into a standard format that PMAC can use for its servo calculations For example the information provided by a regular quadrature encoder might be different than that of a parallel feedback sensor However the feedback information provided by these two different sensors would have the same format after the encoder conversion table processes it For most PMAC users with quadrature encoders this process can be virtually transparent with no need to worry about the details To set the encoder conversion table for using regular quadrature encoders for motors 1 4 enter these commands on the terminal window Wv 720 00C000 WY 721 00C004 WY 722 00C008 WY 723 00C00C WY 724 000000 Jogging Moves Jog Acceleration Jog home acceleration time is specified by Ix20 for motor x and the S curve time by Ix21 If Ix20 is less than two times Ix21 the acceleration time used will be twice Ix21 The acceleration limit for jog home moves is set by Ix19 in counts msec2 If Ix20 and Ix21 are so small that Ix19 would be exceeded Ix19 controls the acceleration time without changing the profile shape If you wish always to specify your acceleration by rate instead of time simply set your acceleration
378. t 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 It can be valuable to stop dithering if the motor is stopped with its commanded position at a fractional value and integral gain is causing oscillation about the commanded position Examples OPEN PLC 7 CLEAR IF M50 1 Condition to start branch CMD 41J Tell motor to stop WHILE M133 0 Wait for desired velocity to reach zero ENDWHILE CMD j41J Adjust command position to integer value M50 0 To keep from repeated execution ENDIF J Function Jog Positive Scope Motor specific Syntax J Remarks This command causes the addressed motor to jog in the positive 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 ERRO01 if I6 is 1 or 3 Examples J Jog addressed motor positive 7J Jog Motor 7 positive 2J 3J Jog Motors 2 and 3 positive J Function 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 I
379. t set to 2 in early development so you will know when PMAC has rejected such a command Setting 16 to 2 in the actual application can prevent program hangup from a full response queue or from disturbing the normal host communications protocol Messages to a host computer or terminal window could be issued using the SEND command 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 Edge Triggered condition in a PLC program On the serial port it is possible to send messages to a non existent host by disabling the port handshaking with I1 1 Ifa program particularly a PLC program sends messages immediately on power up reset it can confuse a host computer program such as the PMAC Executive Program that is trying to find PMAC by querying it and looking for a particular response It is possible particularly in PLC programs to order the sending of messages or command statements faster than the port can handle them This will almost always happen if the same SEND or CMD command is executed every scan through the PLC For this reason it is good practice to have at least one of the conditions that causes the SEND or CMD command to execute to be set false immedia
380. ta after the arrow is a constant no parentheses or expression in parentheses representing the distance from the trigger position axis data data is the optional specification of simultaneous movement for more axes Remarks In the RAPID move mode this move specification permits a move until trigger function The first part of the move description for an axis before the sign specifies where to move in the absence of a trigger It is a position if the axis is in absolute mode it is a distance if the axis is in incremental mode In both cases the units are the scaled axis user units If no trigger is found before this destination is reached the move is a standard RAPID move Page 198 10 Buffer Commands 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 move until trigger All the assigned motors will start together but each can have its own trigger condition If a common trigger is required the trigger signal must be wired into all motor interfaces Each motor can finish at a separate time the next line in the program will not start to execute until all motors have finished their moves No blending into the next move is possible The trigger for a motor ca
381. ta Gathering Buffer Location And Mode Other global I variables 0 3 Range none Units Address Of Pointer For Control W Command 0000 FFFF 0 65 535 Legal PMAC Y addresses DPRAM Servo Data Enable al none DPRAM Background Data Enable al none RAPID Mode Control al none Leadscrew Compensation Enable al none Feed Hold Slew Rate 8 388 607 110 units segmentation period Program Step Mode Control mi none DPR Background Data buffer enable none DPRAM Communications Interrup Enable none DPRAM Binary Rotary Buffer Enable none DPRAM ASCII Communications Enable none DPRAM Buffer Max Motor CS Number none Auto Converted ADC Register Address FFDO FFFE PMAC Y addresses Number of Auto Converted ADC pair Registers xT Number of registers minus 1 Internal Message Carriage Return Control al none Control X Echo Enable al none Internal Response Tag Enable al clooococoooocooo none Motor x 3rd Resolver Gear Ratio 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4095 0 Second resolver turns per third resolver turn Cutter Comp Outside Corner Break Point 1 0 1 0 0 99848 cos 1 cos A8 Minimum Arc Angle Non negative floating point 0 sets 2 20 Semi circles m radians 180 degrees Motor x 2nd Resolver Gear Ratio
382. tal Mode See bit 22 description Bit5 Radius Vector Incremental Mode This bit is 1 if circle move radius vectors are specified incrementally i e from the move start point to the arc center It is 0 if circle move radius vectors are specified absolutely i e from the XYZ origin to the arc center See the INC R and ABS R commands Bit4 Continuous Motion Request This bit is 1 if the coordinate system has requested of it a continuous set of moves e g with an R command It is 0 if this is not the case e g not running program Ix92 1 or running under an S command Sixth character returned Bit3 Move Specified by Time Mode This bit is 1 if programmed moves in this coordinate system are currently specified by time TM or TA and the move speed is derived It is 0 if programmed moves in this coordinate system are currently specified by feedrate speed F and the move time is derived Bit 2 Continuous Motion Mode This bit is 1 if the coordinate system is in a sequence of moves that it is blending together without stops in between It is 0 if it is not currently in such a sequence for whatever reason Bit 1 Single Step Mode This bit is 1 if the motion program currently executing in this coordinate system has been told to step one move or block of moves or if it has been given a Q Quit command It is 0 if the motion program is executing a program by a R run command or if it is not executing a motion program at all BitO Runn
383. tched 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 Page 184 9 0 Online Commands The number reported after the colon is not a line number as an addres offset it is the number of words of memory from the top ofthe program The LIST PROGRAM command when used with comma delimiters shows the program or section of the program with address offsets for each line The LIST PC command can show lines of the program with address offsets from the point of calculation Because PMAC calculates ahead in a continuous sequence of moves the PC Program Calculation command will in general return a program line further down in the program than PE will If the coordinate system is not pointing to any motion program PMAC will return an error ERRO003 if 16 1 or 3 Initially the pointing must be done with the B constant command Examples PC P1 0 Ready to execute at the top of PROG 1 PC P76 22 Ready to execute at 22nd word of PROG 76 LIST PC P76 22 X10Y20 Program line at 22nd word of PROG 76 PC P1001 35 gt P3 12 Execution will return to PROG 3 address 12 PE Functi
384. te systems independent of each other and independent of the host addressing modes These are controlled by the PLC program ADDRESS command This modal addressing affects commands issued from within a PLC program that do not have motor or coordinate system specifiers At power up reset all PLC programs are addressing Motor 1 and C S 1 There is no modal ADDRESS command in motion programs Any motor specific or coordinate system specific command Issued from within a motion program without a specifier is automatically addressed to Motor 1 or C S 1 respectively Commands issued from within a program are placed in the command queue to be parsed and acted upon at the appropriate time by PMAC s command interpreter which operates in background between other background tasks If issued from a motion program the command will not be interpreted before the next move or dwell command in the motion program is calculated If issued from a PLC program the command will not be interpreted before the end of the current scan of the PLC This delay can make the action appear to execute out of sequence Because of the queuing of commands and the fact that command interpretation is a lower priority than command issuing it is possible to overflow the queue If there is no room 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
385. tely to prevent execution of this SEND or CMD command on subsequent scans of the PLC Example M187 gt Y 0817 17 1 amp 1 In position bit AND of motors OPEN PLC3 CLEAR IF M11 1 input is ON IF P1120 input was not ON last time P11 1 set latch COMMAND amp 1A ABORT all motion WHILE M187 0 wait for motion to stop ENDW COMMAND amp 1B10R start program 10 ENDIF ELSE P1120 reset latch ENDIF CLOSE Page 58 5 0 Programming PMAC PMAC position registers The PMAC Executive position window or the online P command reports the value of the actual position register plus the position bias register plus the compensation correction register and if bit 16 of Ix05 is 1 handwheel offset mode minus the master position register M175 gt X 002A 16 1 Bit 16 of 1105 M162 gt D 002B 1 Actual position 1 Ix08 32 cts M164 gt D 0813 1 Position bias 1 Ix08 32 cts M167 D 002D 1 Present master handwheel pos 1 Ix07 32 cts of master or 1 Ix08 32 cts of slaved motor M169 gt D 0046 1 Compensation correction M162 M164 M169 M175 M167 1108 32 P100 P100 will report the same value as the online command P or the position window in the PMAC Executive program 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 M161 gt D 0028 1 Commanded position 1 Ix08
386. the damping effect is On a typical system with a current loop amplifier and PMAC s default servo update time 440 msec an Ix31 value of 2000 to 3000 will provide a critically damped step response Ix32 Motor x Velocity Feed Forward Gain this variable is typically used to minimize the tracking errors when the motor is moving with a constant velocity If the motor is driving a current loop torque amplifier Ix32 will usually be equal to or slightly greater than Ix31 to minimize tracking error Ix33 Motor x Integral Gain this variable is typically used to minimize the steady state following error when the motor is settling on the target position Typically the following error in this case 1s due to gravity and external forces Ix35 Motor x Acceleration Feed Forward Gain This parameter is intended to reduce tracking error due to inertial lag Ix68 Motor x Friction Feedforward This parameter is intended primarily to help overcome errors due to mechanical friction Coordinate System I variables Ix87 C S x Default Acceleration Time this parameter determines the default acceleration time of a motion program running on Coordinate System x which is otherwise set by the TA parameter inside the motion program Ix88 C S x Default S Curve Time this parameter determines the default S curve acceleration time of a motion program running on Coordinate System x which is otherwise set by the TS parameter inside the mo
387. the double jump back rule much like a PLCO This can starve the background tasks for time possibly even tripping the watchdog timer PMAC will not attempt to blend moves through such an empty WHILE loop if it finds the loop condition true twice or more In PLC programs extended compound WHILE conditions can be formed on multiple program lines through use of AND and OR commands on the program lines immediately following the WHILE command itself this structure is not available in motion programs Conditions in each program line can be either simple or compound AND and OR operations within a program line take precedence over AND and OR operations between lines Examples WHILE P2020 ENDWHILE WHILE Q10 lt 5 AND Q11 gt 1 ENDWHILE WHILE M11 0 WAIT sit until input goes true INC WHILE M11 0 OR M12 0 X100 increment until 2 inputs true To do the equivalent of a For Next loop P1 0 Initialize loop counter WHILE P1 lt 10 Loop until counter exceeds limit X1000 Perform action to be repeated P1 P141 Increment loop counter ENDWHILE Loop back To do a timed wait in a PLC program use the servo cycle counter as timer P90 16777216 Counter rollover value 2 24 P91 MO Store starting value of MO X 0 counter P9220 Time elapsed so far WHILE P92 P93 Loop until past specified time P92 M0 P91 P90 Calculate time elapsed Modulo operation to handle rollover ENDWHILE Loop back To do extended co
388. the active communications response port whether serial parallel host port PC Bus or STD Bus or VME Bus port SENDS always transmits over the serial port regardless of what is the current active response port SENDP always transmits over the parallel host port PC Bus or STD Bus regardless of which port is the current active response port 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 CONTROL Z command to cause the response port to revert back to the serial port It is possible particularly in PLC programs to order the sending of messages faster than the port can handle them This will almost always happen if the same SEND command is executed every scan through the PLC For this reason it is good practice to have at least one of the conditions that causes the SEND command to execute to be set false immediately to prevent execution of this SEND command on subsequent scans of the PLC SPLINEI Function Put program in uniform cubic spline motion mode Type Motion program PROG and ROT Syntax SPLINE1 Page 239 10 Buffer Commands Remarks This modal command puts the program in cubic spline mode In SPLINE1 mode each programmed move takes TA
389. the axis definition statement for the motor and or following error in the motor servo loop the reported position at the end of the homing search move will be equal to the axis offset minus the following error not to zero Examples HOME Start homing search on the addressed motor 1HM Start homing search on Motor 1 3HM 4HM Start homing search on Motors 3 and 4 Page 159 9 0 Online Commands 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 If there is an axis offset in the axis definition statement for the motor and or following error in the motor servo loop the reported position at the end of the homing operation will be equal to the axis offset minus the following error not to zero Example On line command examples HOMEZ Do zero move homing search on the addressed motor 1HMZ Do zero move homing search on Motor 1 3HMZ 4HMZ Dozero move homing search on Motors 3 and 4 Buffered motion program examples HOMEZ1 HOMEZ2 3 On line commands issued from PLC program IF P1 1 CMD 45HOMEZ Program issues on line command P1 0 So command is not repeatedly
390. the limit inputs is the opposite of what many people consider intuitive That is the LIMn input when taken high opened stops commanded motion in the negative direction the LIMn input when taken high stops commanded motion in the positive direction It is important to confirm the direction sense of your limit inputs in actual operation If bit 17 value 20000 or 131072 is set to one e g 1125 2C000 motor x does not use these inputs as overtravel limits This can be done temporarily as when using a limit as a homing flag If the limit function is not used at all these inputs can be used as general purpose inputs by assigning M variables to them Starting in firmware 1 15 bit 17 of Ix25 does not effect the software overtravel limits Activation ofthe software overtravel limits is done by setting the value of Ix13 and or Ix14 to a non zero value De activation is done by setting their values to Zero Page 107 6 0 I Variables Amplifier Fault Use Bit If bit 20 of Ix25 is 0 the amplifier fault input function through the FAULTn input is enabled If bit 20 value 100000 or 1 048 576 is 1 e g 1125 10C000 this function is disabled General purpose use of this input is then possible by assigning an M variable to the input Action on Fault Bits Bits 21 value 200000 or 2 097 152 and 22 value 400000 or 4 194 344 of Ix25 control what action is taken on an amplifier fault for the motor or on exceeding the
391. the number of the motor currently addressed by the host the one which acts upon motor specific commands from the host Note that a different motor may 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 Examples Ask PMAC which motor is addressed 2 PMAC reports that motor 2 is addressed constant Function Address a motor Scope Global Syntax constant where constant is an integer from 1 to 8 representing the number of the motor to be addressed Remarks This command makes the motor specified by constant the addressed motor the one on which on line motor commands will act The addressing 1s modal so all further motor specific commands will affect this motor until a different motor is addressed At power up reset Motor 1 is addressed Page 131 9 0 Online Commands Note that 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 Example BlJ 4 222 Command Motor 1 to jog positive Suerte Command Motor 1 to jog negative S2J 4 sess Command Motor 2 to jog positive uy err Command Motor 2 to stop jogging constant gt Function Report the specified motor s coordinate system axis definition Scope Coordi
392. the program It is equivalent to the RS 274 G Code G92 No move is made on any axis as a result of this command the value of the present commanded position for the axis is merely set to the specified value Internally this command changes the value of the position bias register for each motor attached to an axis named in the command This register holds the difference between the axis zero point and the motor zero home point This command automatically forces a temporary pause in the motion of the axes no moves are blended through a PSET command For more powerful and flexible offsets that can be done on the fly X Y and Z axes only refer to the matrix manipulation commands such as ADIS and IDIS Examples X10Y20 PSET XO YO Call this position 0 0 N92000 READ X Y Z To implement G92 in PROG 1000 PSET X Q124 Y Q125 Z2 Q126 Equivalent of G92 X Y Z PVT data Function Set Position Velocity Time mode Type Motion program PROG and ROT Syntax PVT data where data is a positive constant or expression representing the time of a segment in milliseconds PMAC will round this value to the nearest integer in actual use Remarks This command puts the motion program into Position Velocity Time move mode and specifies the time for each segment of the move In this mode each move segment in the program must specify the ending position and velocity for the axis Page 232 10 Buffer Commands Takin
393. the type that has independent resistors no common connection with each resistor using 2 adjacent pins The following table shows which packs are used to terminate each input device Device Resistor Pack Device Resistor Pack Encoder 1 RP51 Encoder 3 RP53 Encoder 2 RP52 Encoder 4 RP54 DAC Output signals If PMAC is not performing the commutation for the motor only one analog output channel is required to command the motor This output channel can be either single ended or differential depending on what the amplifier is expecting For a single ended command using PMAC channel 1 connect DACI pin 43 to the command input on the amplifier Connect the amplifier s command signal return line to PMAC s AGND line pin 58 Jn this setup leave the DACI pin floating do not ground it For a differential command using PMAC channel 1 connect DACI pin 43 to the plus command input on the amplifier Connect DACI pin 45 to the minus command input on the amplifier PMAC s AGND should still be connected to the amplifier common If your amplifier is expecting separate sign and magnitude signals connect DACI pin 43 to the magnitude input Connect AENA1 DIR1 pin 47 to the sign direction input Amplifier signal returns should be Page 25 4 0 Machine Connections connected to AGND pin 58 This format requires some parameter changes on PMAC see Ix25 and Ix02 Jumper E17 controls the polarity of the direction output
394. ther hold a value equal to the Coordinate System number minus one to which the motor is assigned Bit 22 is the MSB and bit 20 is the LSB For instance if the motor is assigned to an axis in C S 6 these bits would hold a value of 5 bit 22 1 bit 21 0 and bit 20 1 Eighth character returned Bits 16 19 Reserved for future use Ninth Character Returned 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 Bits 12 13 Reserved for future use Tenth Character Returned Bit 11 Stopped on Position Limit This bit is 1 if this motor has stopped because of either a software or a hardware position overtravel limit even if the condition that caused the stop has gone away It is 0 at all other times even when into a limit but moving out of it Bit 10 Home Complete This bit set to 0 on power up or reset becomes 1 when the homing move successfully locates the home trigger At this point in time the motor is usually decelerating to a stop or moving to an offset from the trigger determined by Ix26 If a second homing move is done this bit is set to 0 at the beginning of the move and only becomes 1 again if that homing move successfully locates the home trigger Use the Desired Velocity Zero b
395. this command affects all cards on the chain regardless of the current software addressing lt CONTROL V gt 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 The velocity units are in encoder counts per servo cycle rounded to the nearest tenth The lt F7 gt velocity window in the PMAC Executive program works by repeatedly issuing the CTRL V command and displaying the response on the screen To scale these values into counts msec multiply the response by 8 388 608 Ix60 1 I10 servo cycles msec Note The velocity values reported here are obtained by subtracting positions of consecutive servo cycles As such they can be very noisy For purposes of display it is probably better to use averaged velocity values held in registers Y 082A Y 08EA etc accessed with M variables For multiple cards on a single serial daisy chain this command affects only the card currently addressed in software Gm lt CONTROL X gt Function Cancel in process communications Scope Global Syntax ASCII Value 24D 18 Page 129 9 0 Online Commands Remarks This command causes the PMAC to stop sending any messages that it had started to send even multi line messages This also causes PMAC to empty the command queue from the host so it will erase any partially sent commands It can be useful to send
396. this command is sent to PMAC it will be executed as an on line coordinate system command Examples INC A B C INC INC U INC R IROT constant Function Incremental rotation scaling of X Y and Z axes Type Motion program PROG and ROT Syntax IROT constant where constant is an integer representing the number of the first of nine consecutive Q variables to be used in the rotation scaling matrix Remarks This command multiplies the currently selected with TSEL transformation matrix for the coordinate system by the 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 existing rotation scaling matrix by the matrix containing these Q variables adding angles of rotation and multiplying scale factors The rotation and scaling is done relative to the latest rotation and scaling of the XYZ coordinate system defined by the most recent AROT or IROT commands The math performed is New Rot Matrix Old Rot Matrix Incremental Rot Matrix Xrot Yrot Zrot New Rot Matrix Xbase Ybase Zbase This command does not cause any movement of any axes it simply renames the present positions Note When using this command to scale the coordinate system do not use the radius center specification for circle commands The radius does not get scaled Use
397. tion ENDIF CLOSE A motion program is placed in a buffer for later execution Thus motion program commands are referred as buffer commands because they can only be executed inside a motion program A motor that is currently running a motion program cannot be jogged with online commands To jog the motor you must stop the motion program first with the A or Q online command Page 37 5 0 Programming PMAC Axes and Coordinate Systems A coordinate system in PMAC is a grouping of one or more motors for the purpose of synchronizing movements A coordinate system even with only one motor can run a motion program a motor cannot PMAC can have up to 8 coordinate systems addressed as amp 1 to amp 8 in a very flexible fashion e g 8 coordinate systems of 1 motor each 1 coordinate system of 8 motors 4 coordinate systems of two motors each etc An axis is an element of a coordinate system It is similar to a motor but not the same thing An axis is referred to by letter There can be up to 8 axes in a coordinate system selected from X Y Z A B C U V and W The simplest axis definition statement is something like amp 1 2X This simply assigns motor 1 to the X axis of the currently addressed coordinate system When an X axis move is executed in this coordinate system motor 1 will make the move The axis definition statement also defines the scaling of the axis user units For instance amp
398. tion this parameter setup the maximum allowed acceleration for a motor performing a linear move issued from a motion program This maximum value is not observed if variable 113 is greater than zero Safety parameters Ix16 and Ix17 are not observed if 113 is greater than zero 113 greater than zero is necessary for example if a motion program is performing a circular interpolation move Ix19 Motor x Maximum Jog Home Acceleration this parameter sets the maximum allowed acceleration rate for a motor performing jog or homing move S curve and linear acceleration variables The acceleration portion of a programmed move either programmed by a jog or a motion program command is controlled by two time parameters in units of millisecond In the case ofjog or homing commands these two parameters are I variables Ix20 and Ix21 Ix20 determines the overall acceleration time which is the total time required for any change in velocity Ix21 determines the portion of the overall acceleration ramp that is performed in S curve mode No S curve with S curve In all cases if two times the S curve acceleration parameter is greater than the linear acceleration parameter then the overall acceleration time will be two times the S curve acceleration time If 2 x Ix21 gt Ix20 then Ix20 2 x Ix21 The acceleration of either linear or circular interpolated moves programmed from a motion program is determined by
399. tion period Remarks This parameter controls the slew rate to a stop on a program hold command and the slew rate back up to speed on a subsequent R command for all coordinate systems provided PMAC is in a segmented move LINEAR or CIRCLE mode with 11370 If PMAC is not in a segmented move 113 0 or other move mode the command acts just like an H feed hold command with Ix95 controlling the slew rate The units of I52 are the units of 110 1 8 388 608 msec per segmentation period 113 msec To calculate how long it takes to stop on a command and to restart on the next R command use the formula T msec 110 113 152 To calculate the value of 52 for a given start stop time use the formula 152 110 113 T msec Example To execute a full stop in one second with the default servo update time 110 3 713 707 and a move segmentation time of 10 msec 152 should set to 3 713 707 10 1000 37 137 Page 94 6 0 I Variables I53 Program Step Mode Control Range OT Default 0 Units none Remarks This parameter controls the action of a Step S command in any coordinate system on PMAC At the default I53 value of Zero a Step command causes program execution through the next move DELAY or DWELL command in the program even if this takes multiple program lines When 153 is set to 1 a Step command causes program execution of only a single program line even if there is no move or DWELL command on that l
400. tion program Page 47 5 0 Programming PMAC Ix89 C S x Default Feedrate this parameter determines the default federate velocity of a motion program running on Coordinate System x which is otherwise set by the F parameter inside the motion program Ix90 C S x Feedrate Time Units this parameter determines the units of time used for either the Ix89 I variable or the F motion program parameter in compare to milliseconds The default value of 1000 defines the federate in units per second Encoder Flag Setup I variables 1900 1905 Encoder 0 Decode Control this variable determines how an increase in the encoder feedback counter will be interpreted when translated into position An increase in the encoder counter can be interpreted as an increase or a decrease in the position counter thus determining the proper direction of motion Typical values are either 3 or 7 which respectively determine a clock wise or counter clockwise direction of decoding 1902 1907 Encoder 0 Capture Control this variable determines the trigger condition that results in the completion of the home search command For example the trigger condition could be a combination of the home sensor being activated and the encoder C channel rising high 1903 I908 Encoder 0 Flag Select this variable determines which flag will be used for the home trigger condition selected from the home flag the end of travel limits or the amplifier faul
401. tity matrix This makes the rotation angle 0 the scaling 1 and the displacement 0 so the XYZ points for the coordinate system are as the axis definition statements created them PMAC will still perform the matrix calculations even though they have no effect TSELO should be used to stop the matrix calculations The matrix can subsequently be changed with the ADIS IDIS AROT and IROT commands Examples TSEL 4 Select transformation matrix 4 TINIT Initialize it to the identity matrix IROT 71 Do incremental rotation scaling with Q71 Q79 TM data Function Set Move Time Type Motion program Syntax TM data where data isa floating point constant or expression representing the move time in milliseconds The maximum effective TM value is 22 msec The minimum effective TM value is 1 msec Remarks This command establishes the time to be taken by subsequent LINEAR or CIRCLE mode blended motions It overrides any previous TM or F statement and is overridden by any subsequent TM or F statement It is irrelevant in RAPID SPLINE and PVT move modes but the latest value will stay active through those modes for the next return to blended moves The acceleration time is the minimum time for a blended move if the specified move time is shorter than the acceleration time the move will be done in the acceleration time instead This will slow down the move If TM controls the move time it must be greater than the 113 time and t
402. to the home position Ifthere is a following error the actual position will be different by the amount of the following error Home Command The homing search move can be executed either through an on line command which can be given from a PLC program using the COMMAND syntax or a motion program statement On Line Command A homing search move can be initiated with the on line motor specific command HOME short form HM This is simply a command to start the homing search PMAC provides no automatic indication that the move is completed unless you are set up to recognize the in position IPOS interrupt Monitoring for Finish If you are monitoring the motor from the host or from a PLC program to see if it has finished the homing move it is best to look at the home complete and desired velocity zero motor status word accessed either with the command or with M variables The home complete bit is set to zero on power up reset it is also set to zero at the beginning of a homing search move even if a previous homing search move was completed successfully It is set to one as soon as the trigger 1s found in a homing search move before the motor has come to a stop The home search in progress bit simply is the inverse of the home complete bit during the move it is 1 until the trigger is found then 0 immediately after Therefore the monitoring should also look for the desired velocity zero status bit to become one which w
403. tor 1 as X axis in C S 2 2 gt 10000Y _ Redefine Motor 2 as Y axis in C S 2 UNDEFINE ALL Function Erase coordinate definitions in all coordinate systems Scope Global Syntax UNDEFINE ALL UNDEF ALL Remarks This command causes all of the axis definition statements in all coordinate systems to be cleared It is a useful way of starting over on a reload of PMAC s coordinate system definitions Examples amp 1 1 gt Request axis definition of Motor 1 in C S 1 1000X PMAC responds amp 2 5 gt Request axis definition of Motor 5 in C S 2 1000X PMAC responds UNDEFINE ALL Erase all axis definitions amp 1 1 gt Request axis definition of Motor 1 in C S 1 0 PMAC responds that there is no definition amp 2 5 gt Request axis definition of Motor 5 in C S 2 0 PMAC responds that there is no definition V Function Report motor velocity Scope Motor specific Syntax V Remarks This command causes PMAC to report the present actual motor velocity to the host scaled in counts servo cycle rounded to the nearest tenth It is reporting the contents of the motor actual velocity register divided by Ix09 32 To convert this reported value to counts msec multiply by 8 388 608 Ix60 1 and divide by I10 It can be further converted to engineering units with additional scaling constants Note The velocity values reported here are obtained by subtracting positions of consecutive servo cycles As such
404. tring CMD P7 PMAC to return the value of P7 SEND letter Function Cause PMAC to Send Control Character Type Motion program PROG and ROT PLC program Syntax SEND letter SENDS letter SENDP letter where letter is one of the characters in the following set ABC XYZ _ Page 238 10 Buffer Commands Remarks This command causes PMAC to send the specified control character over one of the communications ports These can be used for printer and terminal control codes or for special communications to a host computer Control characters have ASCII byte values of 0 to 31 1F The specified letter character determines which control character is sent when the statement is executed The byte value of the control character sent is 64 40 less than the byte value of letter The letters that can be used and their corresponding control characters are Value Char e a wu o A 65 cema i 8 66 cme 2 c 6r emo 3 weg ee 05 eee X 88 CTRbL X 24 Y 89 CTRbL Y 25 90 lt CTRL Z gt 26 91 se 27 92 93 64 65 67 8 91 92 93 94 95 MUN TEN _ L5 94 y L2 1 95 Note Do not put the up arrow character and the letter in quotes do not use SEND A or PMAC will attempt to send the two non control characters and A for this example instead of the control character SEND transmits over
405. troduction Jumper Location Default Jumper Location Default E0 El OFF E55 C3 OFF El El 1 2 E57 C3 OFF E2 El 1 2 E58 C3 OFF E3 F3 OFF E59 C3 OFF E4 F3 OFF E61 D3 OFF ES F3 ON E62 D3 OFF E6 F3 ON E63 D3 OFF E7 D1 1 2 E65 D3 OFF E9 Fl 12 E66 D3 OFF E10 Fl 12 E67 D3 ON E13 Fl 12 E68 D3 ON E14 Fl 1 2 E69 D3 ON E17A Gl OFF E70 D3 ON E17B Gl OFF E71 D3 OFF E17C Gl OFF E72 E2 OFF E17D Gl OFF E73 E2 OFF E22 Gl OFF E74 E2 OFF E23 Gl OFF E75 E2 OFF E24 H2 1 2 E76 F3 OFF E25 H2 1 2 E77 F3 OFF E26 H2 1 2 E78 F3 OFF E27 H2 1 2 E79 F3 OFF E28 E3 2 3 E80 F3 OFF E29 F3 OFF E81 F3 OFF E30 F3 OFF E82 F3 OFF E31 F3 ON E83 G3 OFF E32 E3 OFF E84 G3 OFF E33 E3 OFF E85 G3 OFF E34A E3 OFF E86 G3 OFF E34 E3 ON E87 G3 OFF E35 E3 OFF E88 H3 OFF E36 F3 OFF E89 G2 ON E37 F3 OFF E90 G2 1 2 E38 F3 OFF E91 D3 ON E39 D3 OFF E92 D3 ON E40 C2 ON E93 C3 OFF E41 C2 ON E94 C3 OFF E42 C2 ON E98 F3 1 2 E43 C2 ON E100 H1 1 2 E44 C2 OFF E101 H1 1 2 E45 C2 ON E102 H1 1 2 E46 D2 ON E103 Al OFF E47 D2 OFF E106 A2 OFF E48 D1 OFF E107 Fl 1 2 E49 DI ON E108 Fl 1 2 E50 Cl ON E109 Bl OFF E51 CI OFF E110 C2 1 2 E54 C3 OFF Page 7 1 0 Introduction If something goes wrong Getting PMAC to communicate again 1 2 3 4 5 6 Turn off PMAC or the host computer where P
406. try to move again If you are holding position well but cannot move the motor you probably do not have your hardware limits held low Check which limits 1125 is addressed to usually LIM1 then make sure those points are held low to AGND and sourcing current unscrew the wire from the terminal block and put your ammeter in series with this circuit if you need to confirm this Refer to the section Installing and Configuring PMAC for details on checking the limit inputs If your motor dies after you give it a jog command you have probably exceeded your fatal following error limit If this has happened it is either because you have asked for a move that is more than the system can physically do if so reduce 1122 or because you are very badly tuned if this is the case you will need to increase proportional gain 1130 To restore closed loop control issue the J command Page 85 6 0 Troubleshooting Section Motion programs Ifthe program does not run at all there are several possibilities 1 Can you list the program In terminal mode type LIST PROG 1 or whichever program and see if it is there If not try to download it to the card again 2 Did you remember to close the program buffer Type A just in case the program is running type CLOSE to close any open buffer type B1 or your program to point to the top of the program and type R to try to run it again Can each motor in the coordinate system be jogged i
407. tter on the calling program line whose following value is to be read into a variable Note No space is allowed between READ and the left parenthesis Remarks This statement allows a subprogram or subroutine to take arguments from the calling routine It looks at the remainder of the line calling this routine CALL G M T D takes the values following the specified letters and puts them into particular Q variables for the coordinate system For the Nth letter of the alphabet the value is put in Q 100 N It scans the calling line until it sees a letter that is not in the list of letters to READ or until the end of the calling line Each letter value successfully read into a Q variable causes a bit to be set in Q100 noting that it was read bit N 1 for the Nth letter of the alphabet For any letter not successfully read in the most recent READ command the corresponding bit of Q100 is set to zero The Q variable and flag bit of Q100 associated with each letter are shown in the following table Letter Target Q100 Bit Value A oa 0 1 1 Se om E E Tn D a 3 8 0 a o 6 a w 1 Quo 8 5 0 1 on 9 32 39 Page 235 10 Buffer Commands P Qu is 32768 800 Q Qi7 16 65536 1000 LT Qo 19 524288 8000 Y Qs 24 167775216 1000000 z Q126 25 33554432 2000000 lt N Cannot be used Any letter may be R
408. uest M variable definition X C001 24 S PMAC reports just definition LIST PROG 1 Request listing of program Page 92 6 0 I Variables DIN geiena PMAC reports program short form X10 DWE1000 RET With I9 1 I125 4 nmsi Request address I variable value I125 49152 PMAC reports whole statement in decimal M101 Request M variable definition M101 5 X C001 24 S PMAC reports whole statement LIST PROG 1 Request listing of program LINEAR PMAC reports program long form X10 DWELL1000 RETURN With I9 2 I125 2 Request address I variable value S GO OO cct PMAC reports just value in hexadecimal With 19 3 I125 2 5 Request address I variable value I125 CO000 PMAC reports whole statement in hexadecimal I13 Programmed Move Segmentation Time Range 0 8 388 607 Default 0 Units msec Remarks When greater than zero this parameter puts PMAC into a mode segmentation mode where all LINEAR and CIRCLE moves are done as a continuous cubic spline in which the move segments are of the time length specified by the parameter in this variable this is not the same thing as SPLINE mode moves This mode is required for applications using CIRCLE mode moves Segmentation mode 113 greater than 0 is required to support any of the following PMAC features e Circular interpolation e Cutter radius compensation e Program stop command e Program hold command
409. uing the J command PMAC will reject this command if the motor is in a coordinate sytem that is currently running a motion program reporting ERRO01 ifI6 is 1 or 3 Examples M172 gt L 082B Define 1 variable jog position distance reg 1HMZ Declare present position to be zero M172 3000 Assign distance value to register 17 Jog Motor 1 this distance end cmd pos will be 3000 H1J Jog Motor 1 this distance end cmd pos will be 6000 M172 P1 SIN P2 Assign new distance value to register 17 Jog Motor 1 this distance 1J Return to pre jog target position 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 Suggested M variable definitions M163 M263 etc can be used in programs to give access to these registers Page 165 9 0 Online Commands Ifthe or stop command has been used to suspend program execution and one or more motors jogged away from the stop position the J command must be used to return the motor s back to the stop position before program executio
410. urce end the point where the signal is generated This will insure maximum protection against induced noises by power cables and other sources of electromagnetic interference Twist pairs of power wires from DC power supplies DC brush motors and other high current cables Cable intersections should always occur at right angles to minimize magnetic coupling Keep signal cables short PMACs JMACH cable should not exceed the 36 inches in length whereas PMACs JEXP cable should not exceed the 6 inches in length Use a separate analog and digital power supply This will eliminate noise entering the digital circuits from the machine connections When possible use differential instead of single ended signals Differential signals will have common mode rejection for noise spikes If a single ended signal is used do not ground the remaining associated signal and leave it floating The ACC 35A and ACC 35B pair is a good example of using differential signals for long distance connections By using the ACC 35A and ACC 35B pair PMAC s JTHW connection could be extended from 3 to 100 meters for remote I O operation Noise spike will be suppressed by the common rejection mode of the differential input 10 Use opto isolation circuits when possible Delta Tau provides a variety of opto isolation boards for different signals 11 A diode must be connected across a relay or solenoid coils in order to reduce inductive voltage
411. ure The important thing to remember in writing a PLC program is that each PLC program is effectively in an infinite loop it will execute over and over again until told to stop These are called PLC because of the similarity in how they operate to hardware Programmable Logic Controllers the repeated scanning through a sequence of operations and potential operations Calculation Statements Much of the action taken by a PLC is done through variable value assignment statements variable expression The variables can be I P Q or M types and the action thus taken can affect many things inside and outside the card Perhaps the simplest PLC program consists of one line P1 P1 1 Every time the PLC executes usually hundreds of times per second P1 will increment by one Of course these statements can get a lot more involved The statement P2 M162 1108 32 10000 COS M262 1208 32 100 Page 78 7 0 PLC Programs could be converting radial M162 and angular M262 positions into horizontal position data scaling at the same time Because it updates this very frequently whoever needs access to this information e g host computer operator motion program can be assured of having current data Conditional Statements Most action in a PLC program is conditional dependent on the state of PMAC variables such as inputs outputs positions counters etc You may want your action to be level triggered or edge triggered
412. variable definitions and motion and PLC programs are not changed by this command On PMAC s with the Option CPU section option 4A 5A or 5B PMAC copies the contents of the flash memory into active memory during a normal reset cycle overwriting any current contents This means that anything changed in PMAC s active memory that was not saved to flash memory will be lost Even the last saved P variable and Q variable values M variable definitions and motion and PLC programs are copied from flash to RAM during the reset cycle With jumper E51 in non default state ON for PMAC PC Lite VME OFF for PMAC STD this command does a reset and re initialization ofthe PMAC On PMAC s without the Option CPU section not option 4A 5A or 5B factory default I variable values conversion table 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 On PMAC s with the Option CPU section option 4A 5A or 5B PMAC enters a special re initialization mode called bootstrap mode that permits the downloading of new firmware see PMAC PROM SOFTWARE UPDATE LISTING for details of this mode In this bootstrap mode there are very few command options To bypass the download operation in this mode send a CONTROL R gt character to PMAC This puts PMAC in the normal operational mode with the existing firmware Factory default values for I variabl
413. ve time vector distance divided by feedrate would be less than the acceleration time currently in force TA or 2 TS the move will take the full acceleration time instead and the axes will move more slowly than specified by the F command Axes are designated as feedrate axes with the FRAX command If no FRAX command is used the default feedrate axes are the X Y and Z axes Any axis involved in circular interpolation is automatically a feedrate axis regardless of whether it was specified in the latest FRAX command In multi axis systems feedrate specification of moves is really only useful for systems with Cartesian geometries for which these moves give a constant velocity in the plane or in 3D space regardless of movement direction If only non feedrate axes are commanded to move in a feedrate specified move PMAC will compute the vector distance and so the move time as zero and will attempt to do the move in the acceleration time TA or 2 TS possibly limited by the maximum velocity and or acceleration parameters for the motor s This will probably be much faster than intended Page 216 10 Buffer Commands Examples F100 F31 25 F Q10 F SIN P8 P9 FRAX Function Specify Feedrate Axes Type Motion program PROG and ROT Syntax FRAX axis axis where axis isa character X Y Z A B C U V W specifying which axis is to be used in the vector feedrate calculations Remarks This
414. ved with a statement of the form axis data data where axis isa letter specifying the axis the first data is a value specifying the end position or the piece distance depending on whether the axis is in absolute or incremental mode respectively and the second data is a value representing the ending velocity The units for position or distance are the user length or angle units for the axis as set in the Axis Definition statement The units for velocity are defined as length units divided by time units where the length units are the same as those for position or distance and the time units are defined by variable Ix90 for the coordinate system feedrate time units The velocity specified for an axis is a signed quantity From the specified parameters for the move piece and the beginning position and velocity from the end of the previous piece PMAC computes the only third order position trajectory path to meet the constraints This results in linearly changing acceleration a parabolic velocity profile and a cubic position profile for the piece Since the user can specify directly or indirectly a non zero end velocity for the move it is not a good idea to step through a program of transition point moves and great care must be exercised in downloading these moves in real time With the use ofthe BLOCKSTART and BLOCKSTOP statements surrounding a series of PVT moves the last of which has a zero end velocity it is possible to use
415. with a GOTO GOSUB CALL G M T or D statement or a B command PMAC will store and report this as an N constant statement but O labels are legal to send to the program buffer N10 and O10 are identical labels to PMAC A line only needs a label if the user wishes to be able 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 Examples Ol 065537 X1000 Page 230 10 Buffer Commands OR condition Function Conditional OR Type PLC program Syntax OR condition Remarks This statement forms part of an extended compound condition to be evaluated in a PLC program It must immediately follow an IF WHILE AND or OR statement This OR is a boolean operator logically combining the condition on its line with the condition on the program line above It takes lower precedence than operators within a compound condition on a single line those within parentheses and also lower precedence than an AND operator that starts a line ORs operate on groups of ANDed conditions In motion programs there can be compound conditions within one program line but not across multiple program lines so this statement is not permitted in motion programs This logical OR which acts on conditions should not be confused with the bit by bit vertical bar or operator which operates on values
416. wo counts per cycle and x4 provides four counts per cycle The vast majority of users select x4 decode to get maximum resolution 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 Warning Changing the direction sense of the encoder decode for a motor that is servoing properly will result in unstable positive feedback and a dangerous runaway condition in the absence of other changes for motors not commutated by PMAC from the same encoder The output polarity must be changed as well to re establish polarity match for stable negative feedback Page 120 6 0 I Variables In the pulse and direction decode modes PMAC is expecting the pulse train on CHAn and the direction sign signal on CHBn If the signal is unidirectional the CHBn input can be tied high to 5V or low to GND or if set up by E18 E21 E24 E27 for single ended non differential input left to float high Any spare encoder counters may be used as fast and accurate timers by setting this parameter in the 8 to 15 range In this range any input signal is ignored The following settings may be used in timer mode 8 Timercouningupat SCLK IO 9 Timercouniingupat SCLK IO These timers are particularly useful when the related capture and compare registers are utilized for precise event marking an
417. x19 Ix22 in force at the time of this command Page 163 9 0 Online Commands PMAC will reject this command if the motor is in a coordinate system that is currently running a motion program reporting ERRO01 if 16 is 1 or 3 Examples J Jog addressed motor negative 50 Jog Motor 5 negative 30 47 Jog Motors 3 and 4 negative J Function Jog Stop Scope Motor specific Syntax J Remarks This command causes the addressed motor to stop jogging It also restores position control if the motor s servo loop has been opened enabled or killed with the new commanded position set equal to the actual position at the time of the J command Jogging deceleration is determined by the values of Ix19 Ix21 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 Examples 1J Jog Motor 1 positive J Stop jogging Motor 1 05 Open loop output of 5 on Motor 1 o0 Open loop output of 0 J Restore closed loop control K Kill output J Restore closed loop control J constant Function Jog Relative to Commanded Position Scope Motor specific Syntax 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
418. xX This simply assigns motor 1 to the X axis of the currently addressed coordinate system When an X axis move is executed in this coordinate system motor 1 will make the move The axis definition statement also defines the scaling of the axis user units For instance 1 gt 10000X also matches motor 1 to the X axis but this statement sets 10 000 encoder counts to one X axis user unit e g inches or centimeters This scaling feature is almost universally used Once the scaling has been defined in this statement the user can program the axis in engineering units without ever needing to deal with the scaling again Permitted Axis Names X Y Z U V W A B C X Y Z Traditionally Main Linear Axes A B C Traditionally Rotary Axes Matrix Axis Definition A rotates about X B about Y C about Z Matrix Axis Transformation Position Rollover Ix27 Circular Interpolation Cutter Radius Compensation U V W Traditionally Secondary Linear Axes Matrix Axis Definition Writing a MOTION PROGRAM 1 Open a program buffer with OPEN PROG constant where constant is an integer from 1 to 32767 representing the motion program to be opened 2 PMAC can hold up to 256 motion programs at one time For continuous execution of programs larger than PMAC s memory space a special PROGO the rotary motion program buffers allow for the downloading of program lines during the execution of the program and for the overwriting of already executed program line
419. y combination J4 RS 232 Serial Port Connection JRS232 Port Both RS 232 and RS 422 ports are always provided and jumpers must be set correctly to use the port of your choice Jumpers E107 and E108 must connect pins 1 and 2 to use the RS 232 port on the J4 connector J4 and J4A cannot be used at the same time J4A RS 422 Serial Port Connection JRS422 Port Both RS 232 and RS 422 ports are always provided and jumpers must be set correctly to use the port of your choice Jumpers E107 and E108 must connect pins 2 and 3 to use the RS 422 port on the J4A connector J4 and J4A cannot be used at the same time Page 3 1 0 Introduction J5 General Purpose Digital Inputs and Outputs JOPTO Port PMAC s JOPTO connector provides eight general purpose digital inputs and eight general purpose digital outputs Each input and each output has its own corresponding ground pin in the opposite row The 34 pin connector was designed for easy interface to OPTO 22 or equivalent optically isolated I O modules Delta Tau s Accessory 21F is a six foot cable for this purpose J6 Auxiliary I O Port Connector JXIO Port This connector is considered an advanced feature and it is not used on a standard application J7 A D Port Connector JS1 Port This connector is considered an advanced feature and it is not used on a standard application J8 Position Compare Connector JEQU Port For a typical application the most important feature of t
420. y limit with tachometer based amplifiers Note that if this limit kicks in for any amount of time the following error will start increasing When Ix69 is actually limiting the output the integrator in the PID loop will turn off for anti windup protection When using PMAC to do internal open loop microstepping using its own commutation algorithms not external V F converters the servo loop is writing to an internal register not directly to the DACs In this case we can allow more than a 32K limit The value of Ix69 that should be used for this microstepping is 524 287 219 1 Page 114 6 0 I Variables Ix80 Motor x Power Up Mode Range 0 3 Default 0 Units none Remarks This parameter controls the power up mode for motor x It controls whether the motor is enabled or killed on power up reset P R and if the motor is commutated by PMAC Ix01 1 and requires a phasing search Ix78 0 Ix81 0 it controls which type of phasing search is done The possible values of Ix80 and the effects they have are 0 Killed on P R Two guess phasing search on command only Enabled on P R Two guess phasing search automatically on P R Killed on P R Stepper motor phasing search on command only Enabled on P R Stepper motor phasing search automatically on P R With Ix80 0 or 2 a command must be given to enable the motor For a PMAC commutated motor the command must be given to start up the com
421. y variables Ix16 and Ix17 will override these parameters if they are found to violate the programmed limits If TM TA TM TA If TA 2 TS TA 2 TS If TA gt 2 TM 4 TA TA 2 TM X TA i 1 Example vel te pe time Page 66 6 0 Motion Programs To illustrate how PMAC blends linear moves a series of velocity Vs time profiles will be shown The moves are defined with zero S curve components The concepts described here could be used for non zero S curve linear moves 1 Lets consider the following motion program code close delete gather undefine all amp 1 1 gt 2000x OPEN PROG 1 CLEAR LINEAR Linear mode INC Incremental mode TA100 The acceleration time is 100 msec TA TSO No S curve component TM250 Move time is 250 msec TM X10 Move distance is 10 units 20000 counts TA250 Acceleration deceleration of the blended move is 250 msec TA X40 Move distance is 40 units 80000 counts CLOSE 2 The two move commands are plot without blending placing a DWELLO command in between the two moves Two moves no blending 360000 300000 250000 200000 160000 100000 50000 0 50000 0 0 0 1 0 2 0 3 0 4 0 6 0 6 07 0 8 0 9 1 0 Time sec 3 The two moves are now plot with the blending mode activated To find out the blending point we trace straight lines through the middle point of each acceleration lines of both velocity profiles Two blended moves 350000 300000 250000
422. ystem command Examples For a three axis cartesian system scaled in millimeters FRAX X Y INC X30 Y40 Z10 F100 Vector distance is SORT 302 402 50 mm Ata 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 Vector distance is SORT 02 402 0 mm Move time unblended is 0 0 sec so Z axis speed is limited only by acceleration parameters FRAX X Y Z Page 217 10 Buffer Commands INC X 30 Y 40 Z120 F65 Vector distance is SQRT 302 402 1202 130 mm Move time is 130 65 2 0 sec X axis speed is 30 2 0 15 mm sec Y axis speed is 40 2 0 20 mm sec Z axis speed is 120 2 0 60 mm sec 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 Remarks This command causes the motion program execution to jump to the line label N or O of the same motion program specified in data with a jump back to the commands immediately following the GOSUB upon encountering the next RETURN command If data isa constant the path to the subroutine will have been linked before program run time so the jump is very quick If Gata is a variable expression it must be evaluated at run time and the appropriate label the

Download Pdf Manuals

image

Related Search

Related Contents

victron energy  IBM BladeCenter E Chassis    Eglo Lydia  Code Corporation CR1000  V7 PD600S data projector  Energy Audits - Weatherization Assistance Program Technical  

Copyright © All rights reserved.
Failed to retrieve file