




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Power PMAC Coordinate SystemsMay 2011X(in)Motor#1 (10,000 ) ctsinMotor#2 (10,000 ) ctsinY(in)#1-10000.00X-2.91Y#2-10000.00Y1 arc min(exaggerated)Power PMAC Coordinate SystemsMain structure for providing multi-axis coordinationSame scheme as Turbo PMAC, but enhanced capabilitiesAxes to start, stop, a
2、nd change speed at same time should be in the same coordinate systemAxes to act independently should be in separate coordinate systemsKey concept: mapping of motors (actuators) to axes (programming coordinates)Two methods of defining coordinate systems:Axis definition statementsFor mathematically li
3、near mappings of motors to axesForward and inverse kinematic subroutinesTypically for mathematically non-linear mappings of motors to axesUseful for non-Cartesian machine geometriesCoordinate System NumberingCoordinate system numbers start at zero (&0)User sets maximum number of coordinate systems s
4、upported with Sys.MaxCoordsDefault value is 16, maximum value is 128Highest usable C.S. number is (Sys.MaxCoords 1)Setting larger than necessary adds to backup file size, some to CPU loadIt is expected that most users will not employ CS 0 (&0) as a “real” CSMotors not explicitly assigned to a CS use
5、 CS 0s time base&0 addressed by default at power-on/reset&x data structure elements use Coordx.element name“Legacy” I-variable support for existing functions in CS 0 15I5000 5099 for CS 0 (not for data gathering variables)I5100 5199 for CS 1I6500 6599 for CS 15Power PMAC Axis AttributesUp to 32 inde
6、pendent axes in a single coordinate systemExisting axis names A, B, C, U, V, W, X, Y, ZAdditional axis names AA, BB, , ZZ (excluding II, JJ, KK)II, JJ, KK are vector names for XX/YY/ZZ 3D-spaceReal-time scaling and offset for all axesSpecial properties for X/Y/Z and XX/YY/ZZ spacesCircular interpola
7、tion on any plane in the 3D spaceTool radius compensation on any plane in the X/Y/Z spaceSpecial properties for X/Y/Z, XX/YY/ZZ, U/V/W, UU/VV/WW spacesReal-time 3x3 matrix transformations of the space Special properties for A, B, C, AA, BB, CC axesProgrammed rollover as rotary axesMultiple motors ca
8、n be assigned to the same axis (e.g. gantry)Virtual axes can be used (not assigned to any motor)Power PMAC Axis Definition StatementsEasiest way of assigning motors to axesSuitable for most simple machine geometriesMap motor to axis (or axes) in a coordinate system with (optional) scaling and offset
9、 scaling defines axis unitsUsually one-to-one mapping of motors to axese.g. &1 #1-1000X, #2-1000YEach motor can be defined as a linear combination of up to 32 axese.g.: #4-1000A+250V-33.333333GG+0.00005Note that combinations are not just limited to XYZ and UVW “triplets”, as in PMAC and Turbo PMACMu
10、ltiple identical definitions are permitted, as for gantries e.g. &1 #1-X, #2-XOne motor cannot be assigned to two separate axese.g. &1 #1-X, #1-Y is not valide.g. &1 #1-X, &2 #1-X is not validThe “Null” Axis Definition&m #n-0 “null” definition means that Motor n will not (directly) use any axis comm
11、and trajectoryThis motor will use C.S. m time base valueThis motor can be “killed” on fault (F.E. or amp) of other motor in C.S.By default, all motors have the null definition in C.S. 0 (&0 #n-0)Motors whose definition is never changed will use C.S. 0s time baseThe undefine all command gives all mot
12、ors this null definition in C.S. 0A motor with a null definition in one C.S. may be redefined as an axis in another C.S.A motor with a real axis definition in one C.S. must first get null definition in that C.S. before redefinition to another C.S.The null definition is useful for “gantry follower” m
13、otorsThis mode enabled by Motorx.ServoCtrl = 8 (not 1 as for most motors)Motors in this mode use trajectory from other motor as specified by Motorx.CmdMotor this should be number of “gantry leader” motorRotary Axis Position RolloverPermits ease of programming of continuously rotatable axesSupported
14、for A, B, C, AA, BB, CC axes in each C.S. onlyUsed for abs mode moves onlyCan be used with kinematic-routine axis definitionsImplemented with saved elements Coordx.PosRollOverii = 0 . 5 for A, B, C, AA, BB, CC axes, respectivelyNote that these are axis variables (in axis user units), not motor varia
15、bles as they were in PMAC/Turbo PMAC= 0 (default) disables rollover 0, specifying cycle size (usually = 360) enables “short path” rollover No abs move distance cycle 1 cycleResulting axis (and motor) position does not roll overMust use “modulo” (remainder) math to report position within one cyclePow
16、er PMAC Axis Definition Matrix StructurePower PMAC “Position Match”Technically, the set of axis definition statements for a coordinate system constitute a matrix to convert from axis to motor coordinatesThis matrix must be inverted to convert from motor to axis positionsRequired to start programmed
17、moves from arbitrary position, or when matrix is changedDesirable for reporting of position, etc. in axis coordinatesPower PMAC automatically performs this matrix inversion for axis reporting functions and when starting motion programsInside motion program, starting axis positions for a move are end
18、ing axis positions of previous moveNot automatically done when commanding axis moves from PLC program, or when definitions, transformations changed within programChanging position-following mode (Motorx.MasterCtrl bit 1) requires position match before next moveCan be commanded explicitly with pmatch
19、 command (on-line or buffered)Power PMAC “Position Match” (cont.)Generally, axis-definition matrix inversion is straightforward (and invisible to user)Some special cases must be (and are!) handledMore motors than axes (e.g. gantry) require decisionIn case of identical definitions, lower-numbered mot
20、or usedIn case of cross-coupling with more motors than axes, most “orthogonal” (mathematically) motors usedUser can override default decision as to which motors to use (by changing Motorx.Csolve bits); this is very rareNon-invertible cases cause errorMore axes than motors (e.g. #1-X+Y only)Identical
21、 definitions reduce effective number of motors (e.g. #1-X+Y, #2-X+Y)Cannot start motion program or report axis position in these cases (status bit Coordx.Csolve = 0)Power PMAC Kinematic RoutinesAlternative, algorithmic method for mapping motors and axes in coordinate systemPermits mathematically non
22、-linear motor/axis mappingsCommonly used for non-Cartesian mechanismsAllows user programming of tool-tip position and pathScheme similar to that in Turbo PMACForward-kinematic (FK) routine converts motor (“joint”) positions to axis (“tool-tip”) positionsExecuted whenever pmatch is required (automati
23、c or explicit)Inverse-kinematic (IK) routine converts axis to motor positionsExecuted each programmed move, or each segment for pathIf forward-kinematic routine exists, it will be used, even if axis-definition statements determine inverse kinematicsIf any motor in CS is defined as inverse-kinematic
24、axis, all forward kinematics must be done in routinePower PMAC Kinematic Routines (cont.)Each coordinate system can have a forward-kinematic and an inverse-kinematic subroutineFK routine must compute all axis positions in CS given motor positionsIK routine must compute motor positions for all CS mot
25、ors defined as IK axes (e.g. #1-I); other motor positions can use axis-definition equations (not mended)Users responsibility to ensure that FK and IK routines are proper inverses of each other over entire workspaceIf they dont agree, will get a sudden jump at the start of a program!FK and IK subrout
26、ines written in Power PMAC script languageSubroutines use local variables, so can be reusedSame FK routine is used for starting-position calculation and axis position/velocity/following-error reportingIterative routines permitted Ldata.GoBack (default = 10) limits loops before errorForward Kinematic
27、 Routine Variable PassingUses CS or command-processor local (L & C) variablesInput value of Ln (n = 0 to Sys.MaxMotors-1) is position of Motor nInput value of D0 0 specifies request for double calculationPower PMAC sets these automatically on entryReturned value of Cn (n = 0 to 31) is scaled positio
28、n of axisUser must calculate and assign these values before exitC0 to C8 for A,B,C,U,V,W,X,Y,Z respectivelyC9 to C16 for AA,BB,HH respectivelyC17 to C31 for LL, MM, , ZZ respectivelyC0 is same as L(Sys.MaxMotors), C1 as L(Sys.MaxMotors+1)Returned D0 value is mask specifying which axes have been calc
29、ulatedUser must set each time executed (usually constant for an application)Bit n of D0 corresponds to Cn calculatede.g. D0=$1C0 (bits 6, 7, & 8 = 1) for X, Y, and Z calculatedPower PMAC automatically uses mask-specified Cn values as axis positionsForward Kinematic “Double Pass” OptionNeeded for axi
30、s velocity (&nv) and following error (&nf) reportingIf input value of D0 (automatically set by Power PMAC) 0, Power PMAC wants 2 passes through FK calculations2nd pass must “push” stack of local variables use callsub to invokeBest handled as follows:open forwardif (D0 0) callsub 100;D0 = axes-calcul
31、ated mask/ Note different use of D0 for returnN100:single pass of FK calculationsreturn;closeInverse Kinematic Routine Variable PassingUses CS local (L & C) variables Input value of Cn (n = 0 to 31) is scaled position of axisPower PMAC sets these automatically on entryC0 to C8 for A,B,C,U,V,W,X,Y,Z
32、respectivelyC9 to C16 for AA,BB,HH respectivelyC17 to C31 for LL, MM, , ZZ respectivelyC0 is same as L(Sys.MaxMotors), C1 as L(Sys.MaxMotors+1)Returned value Ln (n = 0 to Sys.MaxMotors-1) is position of Motor nUser must calculate and assign these values for all #n-I motorsIf input value of D0 != 0,
33、then should process velocities alsoPower PMAC sets D0 to 1 for PVT mode (non-segmented)Input axis velocities in C32 C63 (32 greater than C-var # for axis position)Return motor velocities in “matching” Rn variables (same # as L-var)Power PMAC automatically uses Ln values for IK motors as position (an
34、d Rn values as velocity if specified)Example Simple Kinematic Routines(No variable substitutions)To implement equivalent of &1 #1-1000X, #2-1000YForward-kinematic routine:&1 open forwardif (D0 0) callsub 100;/ Double pass for velocity or error calcsD0=$C0;/ X and Y positions setN100: C6=L1/1000;/ Xp
35、os=M1pos/1000C7=L2/1000;/ Ypos=M2pos/1000closeInverse-kinematic routine (used with axis definitions &1 #1-I, #2-I):&1 open inverseL1=C6*1000;/ M1pos=Xpos*1000L2=C7*1000;/ M2pos=Ypos*1000if (D0 0) / R1=C38*1000;/ M1vel=Xvel*1000 R2=C39*1000;/ M2vel=Yvel*1000closeKinematic Routine IDE Variable NamesUs
36、eful for making easily understandable codePredefined set of text substitutionsSubstitutions automatically performed during download by IDEKinPosMotorn for LnMotor n kinematic positionKinVelMotorn for RnMotor n kinematic velocityKinPosAxis for CnAxis kinematic positionn = 0 for A, 1 for B, 2 for C, 3
37、 for U, etc.KinVelAxis for C(n+32)Axis kinematic velocityKinAxisUsed for D0Bit mask output for axes used in FKKinVelEna for D0Boolean input for IK and FKTwo-Link Robot Arm Kinematics Exampleopen forwardif(Coord1 plete)/ All motors referenced? if (KinVelEna) callsub 100;/ Double pass for vel calcs? K
38、inAxisUsed=$C0; / X&Y returned N100:/ Start of calculations KinPosAxisX=Len1*cosd(KinPosMotor1) +Len2*cosd(KinPosMotor1+KinPosMotor2-90); KinPosAxisY=Len1*sind(KinPosMotor1) +Len2*sind(KinPosMotor1+KinPosMotor2-90); / pute terms for inv kin SumLenSqrd=Len1*Len1+Len2*Len2; ProdofLens=2*Len1*Len2; Dif
39、LenSqrd=Len1*Len1-Len2*Len2;else abort1;/ Not referenced; stopcloseTwo-Link Robot Arm Kinematics Exampleopen inverseX2Y2=pow(KinPosAxisX,2)+pow(KinPosAxisY,2);/ X2 + Y2Bcos=(X2Y2-SumLenSqrd)/ProdofLens;/ cos(B)if (abs(Bcos) 0)Coordx.SegMoveTime tells the software the true time between coarse interpo
40、lation segments, in millisecondsCoordx.SegOverride value (default = 1.0) multiplies SegMoveTime to determine how far to advance trajectory for each segmentExample:Coordx.SegMoveTime = 5.0 msecCoordx. SegOverride = 0.8Trajectory advance per segment = 5.0 * 0.8 = 4.0 msecResulting trajectory executed
41、at 80% of programmed rateAdvantages of Segmentation Override“Time-base override” at servo update stage modifies accelerationAt 50% override, acceleration rate is 25% of programmed valueAt 150% override, acceleration rate is 225% of programmed value“Segmentation override” occurs before lookahead acce
42、leration controlLookahead algorithm can be used to control acceleration rateAcceleration rate can be constant regardless of override valueBoth methods maintain the commanded path very wellNote: Traditional methods of CNC acceleration control maintain acceleration time (not rate) at different overrid
43、e values, but do so at the cost of leaving the commanded path significantly (as the rear wheels of a truck do not follow the path of the front wheels).Segmentation override is not appropriate for tracking a master (as in threading applications) use external time-base override for thisSegmentation ov
44、erride technique protected by U.S. Patent #7,348,748Post-Interpolation Acceleration ControlStandard CNC acceleration control methodSimple computationsUsually IIR low-pass filterEasy to spread acceleration over multiple programmed movesMust be “causal” filter (no future info)Typically produces expone
45、ntial accel profileUsually fixed time constant (Tf); not necessarily minimum-time solutionCan be implemented on PMAC with trajectory pre-filterPre-Interpolation Acceleration ControlStandard PMAC method for providing accel controlEmbedded in equations of commanded motion from trajectory planning“Non-
46、causal” filter uses “future” informationUsually provides constant or “S-curve” acceleration profilesFaster moves for same constraints than post-interpolation controlMore difficult, time-intensive calculationsHarder to spread acceleration over multiple programmed movesPath Implications of Post-Interp
47、olation Acceleration ControlPlot shows command path traversed twiceOnce without accel control; no path errors, not realizableNext with accel control; path affectedFiltered curved paths fail to insideCorners rounded significantly and non-symmetricallyErrors are significant under normal conditionsSame
48、 effect if filtering done in drivePath Implications of Pre-Interpolation Acceleration ControlPlot shows path with and without accel controlAccel control can be applied to affect only move boundariesStart/stop controlCorner blending controlCurved paths do not “fail” to insideBlended corners smaller than for post-interp accel control, for same peak accelBlended corners are symmetricalMuch greater path fidelity overallAcceleration Control Applied After Interp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年会议活动服务合同模板
- 中班防欺凌课件
- 预防青少年早恋
- 2025-2031年中国铜包铝线行业发展监测及投资战略咨询报告
- 非法集资销售规范
- 2025-2031年中国豆奶行业发展运行现状及发展趋势预测报告
- 2025-2031年中国花胶市场供需现状及投资战略研究报告
- 高级钳工技能培训
- 2025-2031年中国碧螺春市场竞争格局及发展战略研究报告
- 医务人员劳动合同(2025年版)
- 课件3:波束成形
- 04第四章(氢氧同位素)
- 人工智能基础与应用课件
- 固定资产盘点管理规定完整版
- 江苏扬州市梅岭小学二年级数学下册期末复习卷(一)及答案
- 妊娠、分娩和产褥期疾病病人的护理
- 18CS01 装配式箱泵一体化消防给水泵站选用及安装-MX智慧型泵站
- 法律文书制作基础-制作基础
- 避孕药具知识培训-专业知识讲座
- 2023版中国近现代史纲要课件第十专题社会主义革命和建设的开展PPT
- 项目展板的设计与制作-叶兆宁
评论
0/150
提交评论