首页 x-y任务台微型计算机操纵试验系统仿单[整理版]

x-y任务台微型计算机操纵试验系统仿单[整理版]

举报
开通vip

x-y任务台微型计算机操纵试验系统仿单[整理版]x-y任务台微型计算机操纵试验系统仿单[整理版] X-Y工作台微型计算机控制试验系统 X-Y worktable microcomputer control experiment system 学生姓名 所在专业 机械设计制造及其自动化 所在班级 申请学位 工学学士 指导教师 职称 副指导教师 职称 答辩时间 2006年 6 月 10 日 目 录 设计总说明 ..........................................................................

x-y任务台微型计算机操纵试验系统仿单[整理版]
x-y任务台微型计算机操纵试验系统仿单[整理版] X-Y工作台微型计算机控制试验系统 X-Y worktable microcomputer control experiment system 学生姓名 所在专业 机械设计制造及其自动化 所在班级 申请 关于撤销行政处分的申请关于工程延期监理费的申请报告关于减免管理费的申请关于减租申请书的范文关于解除警告处分的申请 学位 工学学士 指导教师 职称 副指导教师 职称 答辩时间 2006年 6 月 10 日 目 录 设计总说明 ............................................................................................. I INTRODUCTION ................................................................................II 1 绪论 ............................................................................................... 1 2 X—Y工作台的设计 ...................................................................... 1 2.1 设计要求 ...................................................................... 1 2.1.1 设计任务 ...................................................................... 2 2.1.2 设计参数的确定 .......................................................... 2 2.1.3 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 的分析、比较、论证 .......................................... 2 2.1.4 进给伺服系统总体方案方框图 .................................. 3 2.2 传动比的确定 .............................................................. 3 2.3 初选伺服电机 .............................................................. 3 2.4 丝杠的选型及计算 ...................................................... 4 2.4.1 计算丝杠承受的质量 .................................................. 4 2.4.2 计算铣削力 .................................................................. 4 2.4.3 滚珠丝杠螺母副的选型和校核 .................................. 5 2.5 导轨的选型及计算 .................................................... 10 2.5.1 初选导轨型号及估算导轨长度 ................................ 10 L2.5.2 计算滚动导轨副的距离额定寿命错误~未定义书签。 2.6 伺服电机的验算 ........................................................ 11 2.6.1 传动系统等效转动惯量计算 .................................... 11 2.6.2 验算矩频特性 ............................................................ 13 3 伺服电机控制原理 ..................................................................... 15 3.1 交流伺服电机介绍 .................................................... 15 3.2 交流伺服电机的控制模式 ........................................ 15 3.2.1 位置控制模式(Pr02=0) ........................................ 15 3.2.2 速度控制模式(Pr02=1) ........................................ 16 3.2.3 转矩控制模式(Pr02=2) ........................................ 16 3.3 伺服电机的PID调节方案 ........................................ 17 4 运动控制卡控制原理 ................................................................. 19 4.1 DSP芯片TMS320LF2407介绍 ................................... 20 4.2 PCI总线与DSP通讯电路 ......................................... 21 4.2.1 PCI总线接口电路 ..................................................... 21 4.2.2 PCI-DSP通讯电路 ..................................................... 22 4.3 参数曲线的时间分割插补算法 ................................ 23 4.3.1 时间分割插补原理 ................................................... 23 4.3.2 参数曲线自适应插补算法 ........................................ 24 4.4 DMC3000控制卡中的固化函数 ................................. 27 5 硬件连接 ..................................................................................... 29 6 PC端控制软件设计 .................................................................... 30 6.1 主界面简介 ................................................................ 30 6.1.1 参数设定界面 ............................................................ 30 6.1.2 NC代码格式 ............................................................... 30 6.1.3 程序基本操作 ............................................................ 31 6.2 NC代码的读取 ........................................................... 31 6.3 插补过程 .................................................................... 33 6.3.1 直线插补 .................................................................... 33 6.3.2 逆圆插补 .................................................................... 37 6.3.3 顺圆插补 .................................................................... 40 6.4 运动卡固化函数调用 ................................................ 43 鸣 谢 .................................................................................................. 45 参考文献 .............................................................................................. 46 设计总说明 本设计结合机电一体化课程教学环节需要,设计用微型计算机作为控制系统的X-Y工作台。通过论述X-Y工作台机械结构设计和控制电路接口设计,阐述了机电一体化设计中的共性和关键技术.并用VB软件设计了一个实验系统的控制界面,使操作更简便。 本设计采用的雷赛DMC3000运动控制卡以DSP芯片TMS320LF2407作为处理器,基于PCI总线开发了多轴开放式运动控制器,并采用PCI 9052和ISP-1581作为接口芯片构建PC-DSP通讯电路,利用CPLD器件EPM7128构建两路QEP信号处理电路并辅助完成译码等功能,接口卡负责完成控制卡与外部器件的互联并进行光电隔离和电平转换。 PC端控制软件完成与上位机的通讯,调用DSP内部嵌入的许多控制算法,包括基于前馈补偿的PID控制算法、参数曲线的自适应时间分割插补算法、直线/圆弧插补算法等。同时,控制软件还调用DSP提供的丰富的动态链接库函数供用户调用,并在此基础上开发了测试软件。实验和仿真结果表明,系统设计合理,具有实时性好,跟随误差小,加工精确度高等优点。 关键词:X-Y工作台;微型计算机;运动控制卡 INTRODUCTION Originally design combining electro mechanics' integrated course teaching link to need, design the X-Y worktable which use microcomputer as the control system. Through expounding the design of the of the X-Y worktable’s mechanical structural and the interface of the control circuit, have explained the generality and the key technology in the electromechanical integrated design. And design one control interface of the experimental system with the VB software, which make operating simpler and more convenient. This thesis develops multi-axis motion controllers based on PCI bus respectively with TMS320LF2407 as their processors. PCI 9052 and ISP-1581 chips are adopted to construct the PC-DSP communication channel; CPLD component EMP7128 is used to achieve the functions of two groups of QEP signal processing and address decoding; at the same time, the auxiliary I/O card is also developed to connect the controller and external components after photo-electricity isolation and level transformation. Besides the communicating with PCs, the DSP has also been embedded many control algorithms, including the PID control algorithm with feed-forward compensation, the parameter curve auto-adapted time-division interpolation algorithm, the line/circle /NURBS interpolation algorithm, etc. A lot of dynamic link library functions are also provided for the users, and test software is developed with the functions. Experiment and simulation result indicates that the system is designed reasonably, with many advantages such as good real-time performance, little following error and high processing precision. KEYWORDS: The X-Y worktable;Microcomputer;Motion control card X-Y工作台微型计算机控制试验系统 毕业设计 说明书 房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载 1 绪论 机电一体化毕业设计在机电一体化专业教学中占有重要位置,它关系到学生知识的综合运用和学生动手能力的培养及机电产品开发的能力。因此设计内容选择很重要。基于微型计算机控制的X-Y工作台是典型的机电一体化系统,以此为设计内容有较强的教学研究意义。 数控技术和数控装备是制造工业现代化的重要基础。这个基础是否牢固直接影响到一个国家的经济发展和综合国力,关系到一个国家的战略地位。因此,世界上各工业发达国家均采取重大措施来发展的数控技术及其产业。在我国,数控技术与装备的发展亦得到了高度重视,近年来取得了相当大的进步。特别是在通用微机数控领域,以PC平台为基础的国产数控系统,已经走在了世界前列。但是,我国在数控技术研究和产业发展方面亦存在不少问题,特别是在技术创新能力等方面情况尤为突出。在新世纪到来时,如何有效解决这些问题,使我国数控领域沿着可持续发展的道路,从整体上全面迈入世界先进行列,使我们在国际竞争中有举足轻重的地位,将是数控研究开发部门所面临的重要任务。 本设计是以PC平台为基础的数控X-Y工作台实验系统,它具有直线插补和圆弧插补等数控系统所使用的常用功能,结构简单,操作方便,控制精度相对较高, 可靠性、稳定性和实用性都很好。 2 X—Y工作台的设计 2.1 设计要求 2.1.1 设计任务 2.1.1.1 机械结构装配图,A0图纸一张。要求重要剖面表达完整,向视表 达完整,视图适合 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 。 2.1.1.2 X-Y工作台与PC接口线路图 2.1.2 设计参数的确定 由静止到最大快进速度过度时间 0.1s tP 工作台行程 纵向 180mm 横向 120mm 最大快进速度 纵向和横向 3m/min 铣削最大宽度 4mm a0 铣削最大深度 2mm ap 最大铣刀直径Φ 16mm 加工材料 碳钢 2.1.3 方案的分析、比较、论证 2.1.3.1 数控X—Y工作台的总体方案设计应考虑以下几点: A(工作台应具有沿纵向和横向往复运动、暂停等功能,因此数控控制系统采用连 续控制系统。 B(在保证一定加工性能的前提下,结构应简单,以求降低成本。因此进给伺服 统采用伺服电机开环控制系统。 C(纵向和横向进给是两套独立的传动链,它们各自由各的伺服电动机、联轴器、 丝杠螺母副组成。 D(为了保证进给伺服系统的传动精度和平稳性,选用摩擦小、传动效率高的滚珠 丝杠螺母副,并应有预紧装置,以提高传动刚度和消除间隙。 E(为减少导轨的摩擦阻力,选用矩形滚动直线导轨。 2.1.4 进给伺服系统总体方案方框图 X向 运驱 动动伺服电 控 器 制机 卡 联轴器 微 Y向 运驱机 动 动伺服电 控器 制机 联轴器 卡 图2-1进给系统总体方案方框图 2.2 传动比的确定 i当,1时,可使伺服电机直接与丝杠联接,有利于简化结构,提高精度。因此本 i设计中取,1。 2.3 初选伺服电机 ,Lb0,i根据公式 360,p i,,L其中为传动比,为电机步距角,为滚珠丝杠导程,为脉冲当量。pb0 oi,L,因为,1,现取,4mm, ,4.05,得,0.045mm。 p0b 交流伺服电机的控制精度由电机轴后端的旋转编码器保证。以山洋全数字式交流伺 服电机为例,对于带标准2000线编码器的电机而言,由于驱动器内部采用了四倍频技术,其脉冲当量为360?/8000=0.045?。因此根据检测器省配线数2000,初选山洋P50B05020DXS型伺服电机。 2.4 丝杠的选型及计算 2.4.1 计算丝杠承受的质量 工作台的行程为X,180mm,Y,120mm。工作台尺寸一般为工作台行程的1.1倍。所以:X,180×1.1,198mm, Y,120×1.1,132mm。圆整,取X,200mm,Y,150mm。 选择工作台的型槽为T型槽,查《袖珍机械设计师手册》表3-25可得所选T型槽的参数: A,12mm A B,21mm C,9mm H H,20mm C 间距取50mm B 一取工作台厚度为T型槽厚度的2倍, 即2×20,40mm。 -3工作台质量:М,,, ,7.8×10×20×15×4,9.36kg,即纵向丝杠所承受的质0 量。因工作台有T型槽,故取М,9kg。(减去3个t型槽的重量得到的大概数值)0 横向丝杠所要承受的质量М为工作台质量加上拖板质量,一般以工作台质量的3.5倍计。即М,3.5×9,27kg。 2.4.2 计算铣削力 2.4.2.1 切向切削力的计算 FZ 选用高速钢直柄立铣刀,其铣削力公式为: 0.860.72,0.86F,9.81,C,a,a,a,d,Z ZFefpt aadaC查得,68.2,,16mm,,4mm,,0.02,0.04mm ,,2mfpteF (公式和参数查《机电综合设计指导书》,湛江海洋大学2005年3月P10) 查《机械加工工艺设计手册》,航天工业出版社P632,得直柄立铣刀的齿数: ,3(粗)和,6(细)。 ZZ 以细齿计算得: 0.860.72,0.86. F,9.81,68.2,4,0.04,2,16,6,238.147,Z 2.4.2.2 进给工作台工作载荷的计算 根据《机电综合设计指导书》表2-1,可得: F/F,0.85,ZL F/F,0.80,VZ F/F,0.40.CZ 其中,为工作台纵向进给方向载荷,为工作台垂直进给方向载荷,为工作台横向进FFFVCL 给方向载荷。 F,0.85,238.147,202.425,,L 所以,F,0.80,238.147,190.518,, V F,0.40,238.147,95.259,.C 2.4.3 滚珠丝杠螺母副的选型和校核 滚珠丝杠螺母副初步选型的主要依据是根据最大工作载荷和最大静载荷。初步选型 后,进行轴向刚度验算和压杆稳定性验算。 2.4.3.1 最大工作载荷的计算 本设计中,选用矩形滚动直线导轨。见《机电综合设计指导》P14,得滚珠丝杠上 的工作载荷: ,F,KF,f(F,F,G) mLVC 其中,FF为工作台纵向进给方向载荷,为工作台垂直进给方向载荷,为工作FVCL ,K台横向进给方向载荷,G为移动部件重力.和分别为考虑颠覆力矩影响的实验系数f ,K和导轨上的摩擦系数,对于矩形滚动导轨取,1.1,,0.005。 f 所以, F,1.1,202.425,0.005,(190.518,95.259,9,9.8),224.537,纵向:m F,1.1,202.425,0.005,(190.518,95.259,27,9.8),225.420,横向: m C2.4.3.2 最大动载荷的计算和主要尺寸的初选 C滚珠丝杠最大动载荷可用下式计算: 3 见《机电综合设计指导》式(2-14)P15C,LfFmm 6式中:为工作寿命,; 为丝杠转速,;为最大切LL,60nt/10n,1000v/Lnv0削力条件下的进给速度,可取最高进给速度的1/2,1/3,现取1/3;为丝杠导程;为Lt0额定使用寿命,可取,15000h;为运转状态系数,现,1.5;为丝杠工作载荷;ffFtmmm 1000,3,1/3n,1000v/L,,250r/min04因为, 60,250,1500066L,60nt/10,,225(10r)610 33 所以,纵向:C,LfF,225,1.5,224.537,2048.451,mm 33 横向: C ,LfF,225,1.5,225.420,2056.580,mm 查《机电综合设计指导书》P14, 本设计选内循环滚动螺旋副: FLM1604-3-P4 查《袖珍机械设计师手册》表P1014表19-24,根据,4mm,选丝杠公称直径L0d,16mm,有: m D2.381滚珠直径,mm,W ,3,3圈数列数,, ,2:55',, 丝杠螺旋升角 C5100,,a额定动载荷, C,9700,,oa额定静载荷 C,2056.580N,C,5100N因为,所以初选的丝杠螺母副合格。a 2.4.3.3 传动效率计算 ,滚珠丝杠螺母副的传动效率为 ,tg 见《机电综合设计指导》公式(2-15)P15,,tg(,,,) ,为丝杠螺旋升角,为摩擦角,滚珠丝杠副的滚动摩擦系数,0.003,0.004,式中:,f ,10其摩擦角约等于。 ,tgtg2:55',所以, ,,,0.94,,,tg(,)tg(2:55',10) 2.4.3.4 刚度验算 滚珠丝杠副的轴向变形包括丝杠的拉压变形、丝杠与螺母之间滚道的接触变形、丝杠的扭转变形引起的纵向变形以及螺母座的变形和滚珠丝杠轴承的轴向接触变形。滚珠丝杠的扭转变形较小,对纵向变形的影响更小,可忽略不计。螺母座只要设计合理,其变形量也可忽略不计,只要滚珠丝杠支承的刚度设计得好,轴承的轴向接触变形在此也可以不予考虑。 A(丝杠的拉压变形量 ,1 滚珠丝杠应计算满载时拉压变形量,其计算公式为 FLm,,, 见《机电综合设计指导》公式(2-15)P231EA 式中:为在工作载荷F作用下丝杠总长度上拉伸或压缩变形量(mm);F为丝杠的,mm1 L工作载荷(N);为滚珠丝杠在支承间的受力长度(mm);E为材料弹性模量,对钢E,20.6B 42×10MPa;A为滚珠丝杠按内径确定的截面积(mm);“,”号用于拉伸,“—”号用于压缩。 根据滚珠直径D,2.381mm, W 螺纹滚道曲率半径R,0.52D,0.52,2.381,1.238mmW 滚珠直径D,2.381mmw 偏心距e,0.707(R,D/2),0.707,(1.238,2.381/2),0.034mm w 螺杆小径d,d,2e,2R,16,2,0.034,2,1.238,13.592mmm1 ,3.14222滚珠丝杆按内径确定的截面积A,d,,13.592,145.023mm144 dd公式见《机电一体化设计基础》P25,其中, 为丝杠公称直径。为丝杠底径。m1 取纵向进给的丝杠长度L,300mm,横向进给的丝杠长度L,300mm。 224.537,300-4所以,纵向:,,,22.548,10mm,0.0022mm1420.6,10,145.023 225.420,300,4 横向:,,,22.637,10mm,0.0022mm1420.6,10,145.023 B(滚珠与螺纹滚道间的接触变形量 ,2 该变形量与滚珠列、圈数有关,即与滚珠总数量有关,与滚珠丝杠长度无关。其计 算公式: Fm有预紧时 见《机电综合设计指导》公式(2-17)P230.0013,,223DFZYJ,w 式中:为滚珠直径(mm);为滚珠总数量圈数×列数;Z为一圈的滚DZZ,Z,w,,珠数, -3(内循环);为滚珠丝杠的公称直径(mm);为滚珠丝杠的工作Z,,d/DdFmwmm载荷(kgf);为预紧力(kgf,1kgf=9.8N),取工作载荷的1/3。FFYJm 3.14,16 Z,,3,18.1,19因为, 2.381 圈数×列数,19×3×3,191 Z,Z,, 11F,F,,224.537,74.846,纵向: YJm33 11F,F,,225.420,75.14, 横向: YJm33 224.537,,0.0013,,0.0016mm所以,纵向: 2322.381,74.846,191 225.420,,0.0013,,0.0016mm 横向: 2322.381,75.14,191 ,因为滚珠丝杠有预紧力,且预紧力为工作载荷的1/3时, 值可减少一半左右。2 0.0008mm所以纵向和横向:,。 ,2 C(滚珠丝杠副刚度的验算 ,丝杠的总的变形量应小于允许的变形量。一般不应大于机床进给系统,,,,,12 规定的定位精度值的一半。 因为,纵向: ,,,,,,0.0022,0.0008,0.0030mm12 横向: ,,,,,,0.0022,0.0008,0.0030mm12 机床进给系统规定的精度值为0.01mm,其一半为0.005mm>0.003mm。 所以,总的变形量和机床进给系统规定的定位精度值的一半小,故纵向和横向的滚珠丝杠可以满足要求。 2.4.3.5 压杆稳定性验算 滚珠丝杠通常属于受轴向力的细长杆,若轴向工作载荷过大,将使丝杠失去稳定而产生纵向弯曲,即失稳。失稳时的临界载荷为 FK 2fEI,Z,F 见《机电综合设计指导》公式(2-18)P24K2L 4d,41式中: I为截面惯性矩,对丝杠圆截面I,(mm)(d为丝杠底径);L为丝杠最大164 4工作长度(mm);E为材料弹性模量,对钢E,20.6×10MPa;为丝杠支承方式系数。fZ 本设计中,丝杠为短丝杠,故支承方式选用一端轴向固定一端简支,即,0.20。fZ 44d,3.14,13.59241I,,,1674.492(mm)。 6464 240.20,3.14,20.6,10,1674.492F,,7557.829,所以,纵向: K2300 240.20,3.14,20.6,10,1674.492F,,7557.829, 横向: K2300 临界载荷与丝杠工作载荷之比称为稳定性安全系数,如果大于许用稳FFnnmKKK定性安全系数,则滚珠丝杠不会失稳。因此,滚珠的丝杠的压杆稳定条件为,,nK FK 见《机电综合设计指导》公式(2-19)P24,,n,,nKKFm 一般取,2.5,4,考虑到丝杠自重对水平滚珠的丝杠的影响可取4。,,,,nn,KK F7557.829K又因为,纵向: ,,n,,,33.66,n,4KKF224.537m F7557.829K横向:,, n,,,33.53,n,4KKF225.420m 所以,纵向和横向的滚珠丝杠都不会失稳。 2.4.3.6 滚珠丝杠螺母副的选择 根据最大动载荷选用,其代号为:MDT 1604-3-P3 由《机电综合设计指导》表2-12查得MDT 1604-3-P3的安装连接尺寸(mm): 滚珠丝杆 公称直径 基本道程 副规格 dm L0 D1 D D4 B D5 D6 h 1604 16 4 28 52 38 11 5.5 10 5.7 2.5 导轨的选型及计算 2.5.1 初选导轨型号及估算导轨长度 导轨为直线滚动矩形导轨,本设计中共用4条导轨,每条导轨用2个滑块,根据纵向最大动载荷C=2048.451N,横向最大动载荷C,2056.580N,通过查《机电综合设计指导》表2-16 P33,初选4条导轨的型号都为GDA20SV。其部分参数如下: l,20mm,l,60mm 12 根据工作台的长度和工作台的行程,从《机电综合设计指导》表2-16中查得公式 l。式中为支座长度;为导轨两孔之间的距离。可算得纵向导轨的,10,l,2l,nlnn12 横向导轨的,10。 n 估算出导轨的长度为:纵向进给的导轨长度为640mm,横向进给的导轨为640mm。 2.5.2 计算滚动导轨副的距离额定寿命 L 滚动导轨副的距离额定寿命可用下列公式计算: 3,,CfffaHTC,,L,50滚动体为球时 见《机电综合设计指导》公式(2-20)P30,,FfW,, L式中:为滚动导轨副的距离额定寿命(km);为额定载荷(N),从《机电综合Ca 设计指导》表2-10查得,12400N;为硬度系数导轨面的硬度为58,64HRC时,CffaHH 0,1.0;为温度系数,当工作温度不超过100C时,,1;为接触系数,每根导fffCTT v,60m/min轨条上装二个滑块时,0.81;为载荷/速度系数,无冲击振动或时,ffCW ,1-1.5取=1.5。 ffWW F为每个滑块的工作载荷(N)。 纵向: F,F/4,224.537/4,56.134,m 横向:F,F/4,225.420/4,56.355, m 当加工时,考虑到工作台要承受工件的重量和铣削力等载荷,而这些载荷都通过工作台直接作用滑块上,故取纵向和横向都为F,100N。 所以,纵向和横向: 3124001.0,1,0.81,, L,50,,,15011232.08m,15011km,50km,,1001.5,, L大于滚动导轨的期望寿命,满足设计要求,初选的滚动导轨副可采用。 2.6 伺服电机的验算 2.6.1 传动系统等效转动惯量计算 传动系统是转动惯量是一种惯性负载,在电机选用时必须加以考虑。由于传动系统的各传动部件并不都与电机轴同轴线,还存在各传动部件转动惯量向电机轴折算问题。 最后,要计算整个传动系统折算到电机轴上的总转动惯量,即传动系统等效转动惯量。本设计需要对电机转子,联轴节,丝杠,工作台进行转动惯量的计算。 2.6.1.1 电机转子转动惯量的折算 JD 2由《机电综合设计指导》表2-11 P34查出,初选P50B05020DXS,=0.173?•cmJD 2.6.1.2 联轴器转动惯量的折算 JL J10,22选用TL1联轴器(查《机械设计实用手册》化学工业出版P666),GB4323,84J20,48 22可查出它转动惯量为0.0004?•m,得出,4?•cm。 JL 2.6.1.3 滚珠丝杠转动惯量的折算 JS 查《机电综合设计指导》表4-2 P119,得出1m长的滚珠丝杠的转动惯量为0.94 2?•cm,纵向进给的丝杠长度L,300mm,横向进给的丝杠长度L,300mm,所以滚珠丝杠 22转动惯量纵向:=0.94×0.3=0.282?•cm;横向:=0.94×0.3=0.282?•cm。JJSS 2.6.1.4 工作台质量的折算 JG 工作台是移动部件,其移动质量折算到滚珠丝杠轴上的转动惯量可按下式进行计JG L20J,()M算: 见《机电综合设计指导》公式(2-6)G2, P8 M式中,L为丝杠导程(cm);为工作台质量(kg)。 0 2L0.4,,220所以,纵向: J,()M,,9,0.037kg,cm,,G,22,3.14,, 2L0.4,,220 横向: J,()M,,27,0.110kg,cm,,G,22,3.14,, J2.6.1.5 传动系统等效转动惯量计算 , 2纵向:JJJJJkgcm,,,,,,,,,,0.17340.2800.0374.490,DLSG 2JJJJJkgcm,,,,,,,,,,0.17340.0280.1104.311横向:,DLSG 2.6.2 验算矩频特性 伺服电机最大静转矩是指电机的瞬时失速力矩,从山洋伺服电机说明书中查Mjmax 得。伺服电机的名义启动转矩与最大静转矩的关系为:Mm,,,1.96MMmqjmaxjmax M,,Mmqjmax ,查《机电综合设计指导》表2-17 P38得,0.707。所以,Mm,,,,,0.7071.961.38572mq 伺服电机空载启动是指电机在没有外加工作负载下的启动。伺服电机所需空载启动 力矩可按下式计算: 见《机电综合设计指导》公式(2-24)P27M,M,M,MKqKaKf0 式中:M为空载启动力矩(N•cm);为空载启动时运动部件由静止升速到最大MKqka 快进速度,折算到电机轴上的加速力矩(N•cm);M为空载时折算到电机轴上的摩擦Kf力矩(N•cm); 为由于丝杠预紧,折算到电机轴上的附加摩擦力矩 (N•cm)。M0 M有关的各项力矩值计算如下: Kq 2.6.2.1 加速力矩 ,2n2,max,10,,,MJJKa,,60t 见《机电综合设计指导》公式(2-25)和(2-26)P37,vmaxb,nmax,360p n,J式中:为传动系统等效转动惯量;为电机最大角加速度;为与运动部件最max, 大快进速度对应的电机最大转速;t为运动部件从静止启动加速到最大快进速度所需的 ,v,时间,为运动部件最大快进速度;为初选伺服电机的步距角;为脉冲当量。pmaxb v,30004.05,maxb nr,,,750/minmax3600.045360,,p 2,n23.14750,,,,22max纵向:MJcm,,,,,,,,104.4901035.2465Ka,60600.1t, 2,n23.14750,,,,22max横向:MJcm,,,,,,,,104.3111050.762025Ka,60600.1t, 2.6.2.2 空载摩擦力矩 ,GfL0 见《机电综合设计指导》公式(2-27)P38M,kf2,,i G,i式中:为运动部件的总重量;为导轨摩擦系数;齿轮传动降速比;为传动系数,f 总效率,取,0.8;为滚珠丝杠的基本导程。 ,L0 9,9.8,0.004,0.4M,,0.028,,cm纵向: kf2,3.14,0.8,1 27,9.8,0.004,0.4M,,0.084,,cm横向: kf2,3.14,0.8,1 2.6.2.3 附加摩擦力矩 FL2YJ0 见《机电综合设计指导》公式(2-28)P38,,M,1,,002i,, 式中:F,,为滚珠丝杠预紧力;为滚珠丝杠未预紧时的传动效率,现取,0.94。YJ00 74.846,0.42M,,,,1,0.94,0.694,,cm纵向: 02,3.14,0.8,1 75.140,0.42M,,,,1,0.94,0.694,,cm横向: 02,3.14,0.8,1 所以,伺服电机所需空载启动力矩: MMMMcm,,,,,,,,,35.24650.0280.69435.9685纵向:=0.3597N.mKqKaKf0 MMMMcm,,,,,,,,,50.76200.0840.69451.54横向:=0.5154N.mKqKaKf0 初选电机型号应满足伺服电机所需空载启动力矩小于伺服电机名义启动转矩,即 见《机电综合设计指导》P40M,MKqmq 从上式可知,纵向和横向的电机初步满足要求。 3 伺服电机控制原理 3.1 交流伺服电机介绍 交流伺服电机一般由永磁同步电机、转子位置传感器、速度传感器组成,交流伺服电机和它的驱动器组成一个伺服系统。早期的交流伺服系统是一个典型的速度闭环系统,伺服驱动器从主控制系统接收电压变化范围为,的速度指令信号。电压,UUmaxmax 从变化到的过程中,伺服电机可实现从反转最高速变化到零,然后再变化到,UUmaxmax 正转最高速。但是,这种交流伺服系统只能实现对速度的闭环控制,还不能直接实现对位置的闭环控制。要实现对位置的闭环控制,必须在电机和控制系统之间构成一个位置环。 为了适应数字化控制的发展趋势,国外一些厂家在九十年代初相继推出了带位置环的全数字式交流伺服系统。不仅可以进行位置的闭环控制,还使得交流伺服电机可以象伺服电机一样易于控制,上位控制器可以是运动控制器、PLC或者直接是PC机等。 3.2 交流伺服电机的控制模式 以日本山洋公司的Q系列交流伺服系统为例,介绍这种交流伺服系统的控制原理。这种伺服系统可在驱动器中由参数Pr02设置为位置、速度和转矩三种控制模式,现分述如下。 3.2.1 位置控制模式(Pr02=0) 当伺服系统处于位置控制时,控制系统给伺服驱动器的信号是脉冲和方向信号。这一点和伺服电机的控制方式类似。其接口电路如图 3-1所示。 PULS1 驱动器 脉冲输入 内部 PULS2 SIGN1 驱动器 方向输入 内部 SIGN2 指令脉冲的输入方式可分为以下三种: 1(正交脉冲指令 频率相同但相位相差90?的A、B两相脉冲分别从PULS1、PULS2和SIGN1、SIGN2送入伺服驱动器。A、B两相脉冲的频率控制电机转速;脉冲数控制电机的角位移。 2(CW/CCW脉冲指令 即单脉冲工作方式。脉冲信号通过PULS1、PULS2进入驱动器,则电机按CW方向旋转。若通过SIGN1、SIGN2进入驱动器,则电机按CCW方向旋转。脉冲频率控制电机的旋转速度,脉冲数控制电机的角位移。 脉冲+方向指令3( 脉冲信号从PULS1、PULS2进入驱动器,脉冲频率控制电机转速,脉冲数控制电机的角位移。方向信号从SIGN1、SIGN2进入驱动器,高低电平控制电机的转向。 3.2.2 速度控制模式(Pr02=1) 在速度控制模式中,上位控制系统通过SPD、GND引脚给伺服驱动器输入一个,10V,,10V的模拟电压,即可控制电机实现从负向最大转速到正向最大转速之间的速 Vn度变化。电机转速和指令输入电压之间呈线性关系。 速度指令除了可以由外部模拟电压来输入外,还可以在驱动器内部用四个参数设置四种内部速度。通过驱动器的两个开关输入信号的四种状态组合选择其中一种。驱动器可由内部参数Pr52对外部速度指令进行零漂调整。本文中的运动控制器就是采用速度控制方式对伺服驱动器进行控制的。 3.2.3 转矩控制模式(Pr02=2) 通过外加,10V,,10V的电压,即可控制电机的转矩,与速度控制相似。电机的额定转矩和输入电压之间呈线性关系,直线斜率可用驱动器内部参数设置。伺服电机工作在转矩控制模式时,应限制其最大转速,以免驱动器产生过速报警。 3.3 伺服电机的PID调节方案 图3-2是运动控制器采用的PID调节原理框图,虚线框中的速度调节器和电流调节器的功能由电机驱动器完成。电流环用来提高系统的动态响应指标,增强系统抗干扰能力。速度环用于根据指令速度调节伺服电机的实际转速,在山洋伺服电机中,参数Pr11和Pr12分别设置其速度环增益和积分时间常数、位置环包括位置PID调节和速度、加速度前馈,由运动控制器底层程序完成,可根据位置偏差调节电机的指令速度,实现精确定位、回零等;输出饱和控制主要在软件中实现,可保证输出电压不会超过设定范围;静差补偿则可以消除由于放大器的零点漂移带来的偏差。速度环和电流环分别在速度控制模式和转矩控制模式下发挥作用,因此在运动控制器采用的速度控制模式中,主要由速度环和位置环构成双闭环。 图3-2 PID调节原理框图 (P)设U为D/A转换器的指令速度输出值,E为第个采样时刻的位置偏差,ntargetnnn 为第个采样时刻的指令位置,(P)为第个采样时刻实际位 nnactualn VACC置,为第n个采样时刻累积误差值,为当前目标速度,表Etargettarget,nn B示当前目标加速度,表示电机静差补偿,则: E,(P),(P) ntargetnactualn KE,inn()U,EK,E,EK,,VK,ACCK,B nnpnn,1dtargetvfftargetaff256 K,K,K,K,K其中,分别表示比例增益、积分增益、微分增益、速pidvffaff 度前馈增益和加速度前馈增益。控制作用的强弱取决于比例增益,它相当于系统的刚度,比例增益越大,调节速度越快,但会增加系统的超调。积分调节的作用是消除系统输出的静差,但会降低系统响应速度,增加系统输出的超调。微分调节的作用是阻止偏差的变化,偏差变化越快,微分调节器的输出也越大,因此微分作用的加入将有助于减小超调,克服振荡,使系统趋于稳定。速度前馈和加速度前馈可以提高系统的跟踪性能,减小跟随误差。图3-3是用在有前馈和无前馈的情况下用Matlab进行的圆弧插补跟随误差比较。可以看出,在无前馈的情况下,电机跟随误差从开始的63个脉冲在0.137秒后上升到114个脉冲,随后作类似余弦曲线的变化。引入前馈后,跟随误差从开始的63个脉冲迅速上升到109个脉冲,然后逐渐下降,在大约0.2秒后稳定在?2个脉冲之间。速度和加速度前馈的引入大大减小了系统的跟随误差。 图3-3 跟随误差比较 编码器可以把机械转角变成电脉冲,主要分为光电式、接触式和电磁感应式。数控系统中主要使用体积小、精度高、工作稳定可靠的光电脉冲编码器。光电脉冲编码器分为增量式脉冲编码器和绝对式脉冲编码器。绝对式脉冲编码器结构复杂、价格昂贵,实际应用中,增量式脉冲编码器应用更为广泛。 增量式脉冲编码器一般产生A+、A-、B+、B- 、C+、C-、三对差分信号,差分信号处理电路可以将三对信号进行整形、放大转变成A、B、C三相信号。每转产生一个C相(Index)脉冲,用来产生机床的基准点。通常,数控机床的机械原点与各轴的脉冲编码器发C脉冲的位置是一致的,通过Home+Index回零实现。A相和B相信号则由两组近 90似正弦波、相差为?的信号转变成两组相差为90?的正交编码脉冲,相角超前与滞后对应电机的转向,频率对应电机的转速,脉冲数对应电机的角位移。正交编码脉冲由 4倍频电路产生4倍频脉冲信号,再通过增减计数器对4倍频脉冲信号进行计数,可以方便得获取电机的实际位置。同时,通过M/T测速法,根据在一个伺服周期(s)内电T N机转过的脉冲数(pulse)可以计算得到电机的转速。如对于一个2000pulse/r的增量 V编码器的伺服电机,其速度(RPM)计算方法为: 60N V,RPM20004,,T 4 运动控制卡控制原理 运动控制器由基卡和接口卡组成,如图4-1所示。单卡可以同时控制1-4轴伺服电机的运动。基卡集成了PC机与DSP通信电路,DSP辅助电路,存储器扩展电路,CPLD译码、中断、正交编码处理电路,控制电压转换电路等。接口卡通过62针接头与基卡相连。伺服使能、报警清除等输出信号经过光电隔离后通过25针接头对电机进行控制或者连到I/O端子排进行输出;伺服电机编码器反馈信号经过差分处理和光电隔离后输入基卡,伺服使能、伺服报警信号,回零信号、限位信号和通用I/O信号等也通过光隔进行输入输出。 运行过程中,PC机把粗插补的数据通过PC机与DSP通讯电路传递给DSP进行时间分割精插补。在每一个伺服周期中,CPLD器件EPM7128和DSP各处理两路反馈的正交编码信号进以获取实时位置和速度,DSP进行参数曲线的自适应插补计算出理论插补位置,并与实际位置进行比较获取偏差值,以此作为输入基于速度和加速度前馈进行PID调节,计算获得速度控制量,产生的输出信号经DAC7625进行数模转换及放大电路放大后将模拟电压量送伺服驱动器以控制电机。外部的伺服报警信号、通用输入信号、回零信号、限位输入信号在CPLD中进行逻辑运算后输入DSP的XINT1,只要有一个信号输入就引起中断,由中断处理程序进一步判断后做出相应处理。 接回零 通用 外部 限位 JTAG下 扩展RAM 控制器基卡 口I/O 电源 信号 信号 载口 卡 电源管理DSP 电源输入 I/O端子排 /时钟 控制 TMS320LF2407 6262电压 PC-DSP 核心处理芯片 光电针通转换 针 25伺差分隔离 讯接接针 服信号 电头 头 接电处理 电平CPLD译码、中断 路 头 机 转换 编码器处理电路 ×2 ×2 图4-1 控制器原理框图 4.1 DSP芯片TMS320LF2407介绍 随着微处理器、微控制器和数字信号处理器(DSP)的性价比的提高,它们越来越多地在运动控制系统中得到应用。现在,工程师们可以利用不断发展的控制技术和高性能的处理器设计数字控制系统,这种控制理论和实现手段的并行发展使得许多复杂而有效的控制算法能迅速地用到实际生产过程中。尤其是DSP器件的优越性能,以及各DSP厂商不断推出针对运动控制的DSP芯片,使得DSP成为复杂运动控制系统和高性能运动控制器中的首选器件。 TMS320LF2407器件是美国TI公司开发的面向电机控制的低成本、高性能的DSP器件,是本运动控制器的核心。其指令周期只有33ns,可以很好地满足系统的实时性要 [29]求,能够实现复杂的控制算法。 它在单片处理器中集成了高性能的TMS320CxLP DSP内核(运算能力为30 MIPS)、 为电机控制而优化的事件管理器及PWM输出接口、可同时完成采样的双工A/D转换器、并行的电机电流读数转换与通讯、Flash存储器或ROM程序存储器,还包括同步、异步串行外设接口、比较 单元 初级会计实务单元训练题天津单元检测卷六年级下册数学单元教学设计框架单元教学设计的基本步骤主题单元教学设计 、通用定时器及与光电编码器接口的编码单元等资源。这种高度集成的单片数字控制方案比现存的多片方案具有更高的电机驱动能力及更低的系统 [30]费用。 与本运动控制器相关的的TMS320LF2407资源介绍如下: 1(采用高静态CMOS技术,使得供电电压降为3.3V,减小了控制器的功耗;30MIPS的执行速度使得指令周期缩短到33ns(30MHz),从而提高了控制器的实时控制能力。 2(基于TMS320C2xxDSP的CPU核保证了TMS320LF240X系列DSP代码和TMS320系列DSP代码兼容。 3(片内高达32K字的FLASH程序存储器,高达1.5K字的数据/程序RAM,544字双口RAM(DARAM)和2K字的单口RAM(SARAM)。 4(两个事件管理器EVA和EVB,每个包括:两个16位通用定时器;8个16位的脉冲调制(PWM)通道。它们能够实现:三相反相控制;PWM的对称和非对称波形;当外部引脚PDPINTx出现低电平时快速关闭PWM通道;可编程的PWM死区控制以防止上下桥臂同时输出触发脉冲;3个捕获单元;片内光电编码器接口电路;16通道A/D转换器。事件管理器模块适用于控制交流感应电机、无刷直流电机、开关磁阻电机、伺服电机、多级电机和逆变器。 5(扩展的外部存储器(LF2407)总共192K字:64K字程序存储器;64K字数据存储器;64K字I/O寻址空间。 6(看门狗定时器模块(WDT)。 7(基于锁相环的时钟发生器。 8(高达40个可单独编程或复用的通用输入/输出引脚(GPIO)。 9(5个外部中断(电机驱动保护、复位和两个可屏蔽中断)。 电源管理器包括3种低功耗模式,并且能独立将外设器件转入低功耗模式。 1.2 PCI总线与DSP通讯电路 4.2.1 PCI总线接口电路 PCI总线接口电路大体有两种实现方法。 1(用可编程逻辑器件CPLD或FPGA实现通用PCI接口。这样做也有两种选择。一 个是买IP宏,并根据应用的需要来裁剪IP宏并与相关应用电路烧入CPLD或FPGA中。另一种是采用类似于QuickLogic公司的一次性可编程芯片来处理,每片可编程芯片内都内嵌PCI接口电路,也可根据应用的需要来裁剪烧写,但只能烧写一次。采用可编程逻辑器件的优点主要有:PCI接口可以根据插卡功能进行最优化的电路设计,而不必实现所有的PCI总线的功能,节约系统的逻辑资源;可以将PCI插卡上的其它用户逻辑与 PCI 接口逻辑集成在一块芯片上,实现紧凑的系统设计;当系统升级时,只需对可编程逻辑器件重新进行逻辑设计,而无须更改PCB板。但是,采用可编程逻辑器件由于要买IP宏,而一个IP宏少则几千美元多则更贵,并且一般的小规模的CPLD的免费开发软件不支持对IP宏的开发所以用户有可能还要花几万元买大规模的CPLD或FPGA设计软件,因此用户的开发前期投入很大;同时用户需具备一定可编程逻辑设计的功底以及扎实电路设计基础,要有一定深度的VHDL的开发能力,开发周期较长。 2(采用专用芯片实现PCI总线接口。专用芯片可以实现完整的PCI主控模块和目标模块的接口功能,将复杂 PCI 总线接口转换为相对简单的用户接口。厂商对 PCI 总线接口进行了严格的测试,用户只要设计转换后的总线接口即可。这样,用户可以集中精力于应用设计,而不是调试 PCI 总线接口,明显的缩短了开发周期。它的缺点是用户实际只用到了部分的 PCI 接口功能,这样造成一定的逻辑资源浪费,对于大批量生产的产品不易降低成本。 为了缩短开发周期,本运动控制器采用第二种实现方法,即选用专用PCI总线接口芯片来设计PCI总线接口电路。 4.2.2 PCI-DSP通讯电路 PC机通过PCI总线与DSP与的通讯电路如图4-2所示。 由于DSP与PC机之间需要高速地传送大量的数据,为了提高两者之间的通讯速度,在PCI 9052与DSP之间加入了双口RAM。双口 RAM作为一种特殊的RAM芯片,在高速数据采集处理系统中得到广泛的应用。它具有两个独立的端口,各自均有一套独立的数据总线、地址总线和控制总线,允许两个端口独立地对存储器中的任何单元进行存取操作。当两个端口同时对存储器中的同一单元进行存取操作时,可由其内部仲裁逻辑决定优先权。 双口RAM芯片的型号为美国IDT公司生产的IDT7132,它是2K×8bit高速静态双口RAM,存取速度35ns,在数字信号处理领域应用已经比较普遍。它的时序与DSP的时序相配合,特别适用于DSP与PC机之间的大量数据高速双向传送。该芯片均提供两个带有自身的控制、地址和I/O引脚的独立端口,它允许独立地读写存储器中的任何单元。IDT7132带有片内硬件端口仲裁电路,可以允许双机同步地读或写存储器中的任何单元, TMS320LF2407 DSP 同时保证数据的完整性。它的竞争原则是:左右两端口的地址信号同时到达,首先处理CE片选信号先到的一端,慢的一方BUSY线下拉,直到快的一方访问完毕;左右两端口的片选信号同时到达,首先处理访问地址信号先到的一端,慢的一方BUSY线下拉,直到快的一方访问完毕。采用双口RAM作为TMS320LF2407与PC主机之间的通讯接口不但可以简化通讯接口电路的设计,而且提高了数据交换的速度,增强了控制卡的实时性。由于只用到了双口RAM的16个地址,DSP的地址线A[10: 4]与IS#信号进入CPLD进行译码对双口RAM片选。LRDYi信号和两侧的BUSY#信号也进入双口CPLD进行相应的逻辑IDT7132 DRAM 判断。由于双口RAM的数据信号电平为5V,在与3.3V的DSP之间进行数据传输时需要74LVTH245进行电平转换。 AD[31: 0] [10: 0] AA [10: 0] RISAA[1: 0] [1: 0] ALC/BE[3: 0]# 74LVTH D [7: 0] LA[10: 2] [10: 2] I/O[7: 0] ALR245 PAR LAD[7: 0] I/O[7: 0] R/W#LR R/W#FRAME# IRDY# OE#IORD# L OE#RD#R TRDY# R/W#CE#IOWR# L R STOP# CE#A [10:4] L 总IDSEL PCI 9052 BUSY#线R IS# BUSY# DEVSEL# L SERR# PERR# CS1# CPLD芯片EPM7128 地址译码 LRDYi CLK RST# 96LC46B EESK SK INTA# 2PCI PROMEEEDO DO LOCK# EECS CS EEDI DI 图4-2 PCI-DSP通讯电路图 4.3 参数曲线的时间分割插补算法 4.3.1 时间分割插补原理 时间分割插补又称为数据采样插补,是现代数控机床高、中档CNC系统及运动控制器常用的插补算法。它基于粗、精二次插补的原理实现轨迹控制,其中粗插补由上位机系统的用户软件完成,精插补由运动控制器实现。 设为参数曲线上任一点的位置矢量,参数曲线的形式为: P(u) ,,, (4-1)P(u),x(u)i,y(u)j,z(u)k i,1在运动控制器中,软件插补以一定的采样周期(伺服周期)进行工作,在第个 i伺服周期中,实时计算出第个伺服周期中各轴的运动分量,并满足指定的进给速度,Pi 要求,即: ,,,PPP,ii,1i (4-2),PL,,,ii, iT式中为第个伺服周期中的瞬时进给量,也称插补步长。若插补周期为,指令,Li 进给速度为,则。 f(t),L,f(t)Tiii 因此,参数曲线的时间分割插补即由运动控制器在每个伺服周期中实时地插补出满足式(4-1)、(4-2)的运动轨迹,完成整条曲线的加工,其本质是以一段P(i,1,2,?)i 段弦长逼近实际曲线。与传统的CAM离线编程中的逼近方法相比,曲线的,L(i,1,2,?)i 实时插补不仅编程简便而且轨迹插补时是以插补步长直接逼近,其步长只取决于加工速度和系统的插补周期,是原理上的最短直线,因此可以获得最高的曲线加工精度。在曲 r,8025率半径mm的外形上用时间分割原理进行插补,以m/min的高速加工,伺服周期 0.2721,L,0.417为ms,则插补步长mm,弓高误差仅为。 j 4.3.2 参数曲线自适应插补算法 参数曲线的插补涉及到两个坐标空间,即一维的参数空间和三维的轨迹空间。因此,现有插补方法将插补计算分两步完成: ,L,u1(参数插补。将轨迹空间的进给步长映射到参数空间,求出相应的参数增量ii u,u,,u及参数坐标; i,1ii 2(轨迹计算。将得到的参数空间坐标值映射到轨迹空间,得到相应的映射点P,P(u),即为所求插补轨迹的新坐标点。 i,1i,1 u在参数空间,曲线轨迹参数的插补计算可由二阶泰勒级数表示,即 22,,, (4-3)u,u,Tu,(T/2)u,0(T)i,iii1 [10],,,其中和分别为参数对时间的一阶和二阶导数,可推导得出:uuutii 2,,,,,,,,,,L,L(xx,yy,zz)iiiiiiiiu,u,, (4-4),i1i222222,,,2(x,y,z),,,x,y,ziiiiii ,,,,,,,,,式中,和分别为坐标对参数的一阶和二阶导数,、、和的意义与xxyyzzxuiiiiii 之类似。 利用公式(4-4)求得得插补参数,代入曲线方程即可得到新插补点,根据uPi,1i,1 i新插补点的坐标即可得到各坐标轴的插补量,从而获得第个伺服周期中各个电机的位置增量。由于插补中以短直线逼近实际曲线,所以存在工高误差;另外,插补中采用曲线的弧长速度代替实际进给的弦长速度,也会引起进给速度的偏差。上述算法缺乏对这两种误差的必要控制,并且计算过程复杂,因此采取基于参数递推预估、误差控制、参数校正的插补算法。其基本思路是在插补中实时监控插补弓高误差的大小,当误差在允许误差范围内时,仍按瞬时进给速度计算进给步长,若误差超出了允许范围,则按,Li 允许误差求取约束插补步长。这样,插补进给能随曲线曲率的变化自适应调整进给步,Li 长,确保插补的轮廓误差控制在允许的范围内。此外,针对插补的进给速度偏差主要来源于以弧长速度代替弦长速度,为了获得更好的速度稳定性,应直接以弦长速度为控制目标。 下面给出基于时间分割插补原理的参数曲线自适应插补步骤: 1(利用插分代替微分,代入二阶泰勒展开公式(4-3),可得到插补点的参数递推估算公式(4-5),根据该公式进行参数递推预估。 ˆu,2.5u,2u,0.5u (4-5)i,1ii,1i,2 ˆu2(将预估参数代入曲线方程求得预估插补点,并根据公式(4-6)计算预估插i,1 补步长: ,222ˆˆˆˆˆˆ,L,P[x(u),y(u),z(u)],P,(x,x),(y,y),(z,z)(4-6)ii,i,i,ii,ii,ii,i111111 , ,,3(设允许轮廓误差为,参数预估插补弓高误差为,计算满足误差控制条件的hh [11]最大插补步长: ,, ,。 (4-7),L,,/,,,Lihhi ˆˆNMN由于插补步长一般很小,不妨取曲线段的中点,弦的中点,用MPPPPii,1ii,1间的距离近似表示本段曲线的插补弓高误差,即 MN ˆˆ()()Pu,Puu,uii,1i,1iˆ (4-8),(),,Pu,hi22 T4(设插补周期为,指令进给速度为,根据下式计算满足误差约束条件的实f(t)i 际插补步长: , (4-9),L,min{f(t),T,,L}iii [10]1%5(确定参数插补点(,为允许偏差,例如): ˆ,ˆ,u(LL/L),,,,,i,1iii,, (4-10)LL,,u,ii,i,1ˆu(1)u(其它),,,i,1i,,ˆL,i,L,i, i6(将u代入曲线方程求取插补点P,计算各轴进给量,为第个伺服周期中各电i,1i,1 机的位置PID调节计算做好准备。 对于直线插补,不存在工高误差,参数插补速度完全由f(t)决定。圆弧由于具有恒i f(t)定的曲率半径,只要根据工高误差约束条件算出最大插补速度,保证小于该最大速i f(t)f(t)度的情况下,参数插补步长只与有关。在恒定的情况下可以进行等参数插补,ii 参数插补步长由插补速度和工高误差约束条件确定。因此可以进行参数插补步长的预处 理,编程方便,并可以提高程序运行速度。 设圆弧的参数表达式为: ,x,x,Rcos,0 (4-11)(0,,,,,,为常数),y,y,Rsin,0, 则参数插补步长为: f(t)Ti, (4-12),,R 而对于一般的参数曲线,则要根据步骤1,6进行插补处理。 4.4 DMC3000控制卡中的固化函数 常见四种G代码指令如下: G00 快速定位,有效轴到达指定位置即可,对应DMC3000卡可使用d3000_start_t_move或d3000_start_s_move函数,多个有效轴,需要调用多次,如: 效轴一个 G00X100 d3000_start_t_move( X, 100.0); 有效轴两个 G00X100Y100 d3000_start_t_move( X,100.0); d3000_start_t_move(Y,100.0); G01 直线插补,使指定的有效轴同时启动并同时达到指定位置,若通常使用三轴或两轴插补,则下面函数可以满足。 使用相对位置插补: D3000_start_t_line2 D3000_start_s_line2 D3000_start_t_line3 D3000_start_s_line3 使用绝对位置插补: D3000_start_ta_line2 D3000_start_sa_line2 D3000_start_ta_line3 D3000_start_sa_line3 G02 顺圆插补 G03 逆圆插补 圆弧插补指令,常见的是给出起点位置,圆心位置及终点位置,对应DMC3000库函数如下: 匀速圆弧 d3000_start_arc 相对位置 d3000_start_a_arc 绝对位置 高速圆弧 d3000_start_t_arc 相对位置 d3000_start_ta_arc 绝对位置 圆弧的插补方向,由函数的其中一个dir参数给出,dir=0时,表示顺时即G02,dir=1 时,表示逆时即G03。 5 硬件连接 连接如下图: 6 PC端控制软件设计 完成两坐标联动数控系统控制及仿真程序设计,对于给定的典型零件NC代码,用一种计算机高级语言Microsoft Visual Basic编写代码解释、插补运算程序,并在计算机上仿真数控装置,进行零件加工过程的模拟、加工点坐标值实时显示、伺服电机控制模拟、冷却液和主轴等开关量控制的模拟等。仿真程序至少实现的NC代码包括:G00、G01、G02、G03、G54、M02、M03、M04、M05、M08、M09。 6.1 主界面简介 如运行的程序图所示,程序主界面由如下几个部分组成:工具栏、、NC代码输入框、坐标值实时显示框、工作状态框、状态框、NC模拟框。其中,工具栏菜单依次为:文件、运行、设置、其它,快捷工具栏:打开、保存、剪贴、复制、粘贴、启动、结束,工作状态框显示了冷却液的开关状态、主轴的转速及转向、伺服电机X电机、Y电机的转向。NC代码在NC代码输入框输入,根据NC代码在NC模拟框进行模拟加工。 1.1.1 参数设定界面 根据需要可以选择脉冲当量(单位为微米μm)以及图形的放大倍数,以便显示,插补形式由于时间关系,只编写一种——逐点比较法,有可能的话继续完善。 1.1.2 NC代码格式 在NC代码输入框输入代码,开头必须要有程序开始符“%”、结尾同样以结束符“%”结束,程序不能输入行符,因为本程序还不能辨别。指令符(G、M)可以是大写也可以是小写,指令间允许有空格。输入圆心时只能用IJ指令,R指令不能识别,令外,在同一行中不可输入两条M指令——这是该程序的不足之处,还有待提高。 1.1.3 程序基本操作 首先,在NC代码输入框输入NC代码或打开已有的代码,接着按工具栏上的运行——“调试”,程序经过调试后,如果程序有错,会自动报错,报错时光标将会定位在有错的代码附近,可以方便用户修改,直到无误为至,此时程序会告诉用户——调试成功,紧接着按——“模拟”,在NC模拟框便会出现用户希望的图形。绘图的过程中用户可以按——“暂停”键——暂停绘图、再按“继续”时便继续绘制,按——“结束”整个程序将停止。与此同时,坐标值实时显示框实时显示动点的坐标,工作状态框也反映工作状况。在快捷工具栏功能按钮一样可以实现如上功能。整个加工过程比较直观,一目了然。本程序优秀之处在于——当程序未调试之前“模拟”键成淡色,不能使用,以防出错,而当模拟时“调试”键成淡色,程序不会乱套。 1.2 NC代码的读取 代码读取的流程图如下图,为了能在模拟前读完代码,并且判断出代码的正确性,本程序采取一开始就调试全部代码。如图,一开始先读入整个代码文本,接着判断程序的开头和结尾是否有%(%为程序开始和结束的标志符号),然后一行一行地读,把每行所读入的指令和坐标值存入数组,并且判断代码和坐标值的正误,特别是遇到G02、G03的圆弧指令时,要判断所给定的坐标值能否画圆弧。正确性判断完毕之后,就判断整段程序是否读完,即判断下一行是否“%”,如果不是就循环读下一行,直到下一行为“%”为止。 开始 读入整个程序 赋初值i=1 N 判断是否 有% Y 读入第i行G、M、S指令和X、 Y、I、J的坐标值 N 判断指令和坐标程序报错 值正确与否 Y N 判断(Y OR N) i=i+1 程序执行 Y 结束 图3 (源代码见附录) 1.3 插补过程 1.3.1 直线插补 1.3.1.1 流程图 Y N Fm>=0? F m+1=Fm—Ye m+1=Fm+Xe F X走步 Y走步 CountN=CountN-1 N CountN=0 ,, Y 结束 逐点比较法直线流程图 (源代码见附录) 1.3.1.2 偏差计算公式 k = (ye1 - ye0) / (xe1 - xe0) '直线斜率 fm = (ym1 - ye0) * (xe1 - xe0) - (xm1 - xe0) * (ye1 - ye0) '实时加工点的位置判断 假设加工如图 所示直线AB,取直线起点为坐标原点,直线起点坐标A(Xe0,Ye0)为已知,即直线AB为给定轨迹。 M(Xm1,Ym1)点为加工点(动点), 分6中情况进行直线插补。 1, '斜率大于零直线插补情况1(xe0 < xe1) k = (ye1 - ye0) / (xe1 - xe0)>0 当fm>=0时,应向+X方向走一步,走后新坐标为: (xm1+1, ym1) 当fm<0时,应向+Y方向走一步。走后新坐标为:(xm1, ym1+1) 按上述公式循环判断下去,直到 Xm1=Xe1, Ym1= Ye1到达终点,停止插补,程序结束。 Y fm < 0 ,+y B(Xe1,Ye1) M(Xm1,Ym1) M(Xm1,Ym1) fm >= 0, +x A(Xe0,Ye0) X 2, '斜率大于零直线插补情况2(xe0 > xe1) k = (ye1 - ye0) / (xe1 - xe0)>0 当fm>=0时,应向-X方向走一步,走后新坐标为: (xm1-1, ym1) 当fm<0时,应向-Y方向走一步。走后新坐标为:(xm1,ym1-1) 按上述公式循环判断下去,直到 Xm1=Xe1, Ym1= Ye1到达终点,停止插补,程序结束。 Y A(Xe0,Ye0) M(Xm1,Ym1) M(Xm1,Ym1) fm >= 0, -x B(Xe1,Ye1) X fm < 0 ,-y 3, '斜率小于零直线插补情况1(xe0 < xe1) k = (ye1 - ye0) / (xe1 - xe0)<0 当fm>=0时,应向-Y方向走一步,走后新坐标为: (xm1, ym1-1) 当fm<0时,应向+X方向走一步。走后新坐标为:(xm1+1, ym1) 按上述公式循环判断下去,直到 Xm1=Xe1, Ym1= Ye1到达终点,停止插补,程序结束。 Y A(Xe0,Ye0) 1,Ym1) M(Xm1,Ym1) M(Xm fm < 0, +x X B(Xe1,Ye1) fm >= 0 ,-y 4, '斜率小于零直线插补情况1(xe0 > xe1) k = (ye1 - ye0) / (xe1 - xe0)<0 当fm>=0时,应向+Y方向走一步,走后新坐标为: (xm1, ym1+1) 当fm<0时,应向-X方向走一步。走后新坐标为:(xm1-1,ym1) 按上述公式循环判断下去,直到 Xm1=Xe1, Ym1= Ye1到达终点,停止插补,程序结束。 Y B(Xe1,Ye1) fm >= 0 ,+y 1,Ym1) M(Xm1,Ym1) M(Xm fm < 0, -x X A(Xe0,Ye0) 5, '斜率不存在时直线插补情况1(xe0 = xe1) 当Ye0>ye1时,应向-Y方向走一步,走后新坐标为: (xm1, ym1-1) 当Ye0Xe1时,应向+X方向走一步,走后新坐标为: (xm1+1, ym1) 当Xe0= 0, -x 当动点M在圆内有:Fm<0 A 当动点M在圆外有 Fm>0 因此,可定义圆弧偏差判别公式如下: 第一象限(逆圆举例) fm = Sqr((xm1 - Xcenter) ^ 2 + (ym1 - Ycenter) ^ 2) - R Y F(x)?0 mF(x),0 m ?y= , ?y= + 若,应沿-X轴方向进给一步,到M+1点, F,0m F(x),0 F(x)?0 mm ?x= , ?x= , 其坐标值为:(xm1-1, ym1) O X F(x),0 F(x)?0 mm逆圆 则新加工点的偏差为:?x= + ?x= + 222F,X,Y,R,F,2X,1m,m,m,mm111F(x)?0 mF(x),0 m ?y= + ?y= , F,0若,沿+Y轴方向进一步,到M+1点,其m 逆圆插补意图 坐标值为(xm1, ym1+1) 222则新加工点的偏差为:F,X,Y,R,F,2Y,1 m,m,m,mm111 1.3.2.2 终点判断的方法 在绘图的过程中,不断地比较动点与终点的距离,当其距离小于脉冲当量时,在误差允许的范围达到终点。 1.3.2.3 其它象限的圆弧插补计算 如上图所示,其它象限的圆弧或关于X轴对称、或关于X轴对称、或关于原心对称,完全可以按第一象限逆圆偏差公式进行计算,所不同的是将进给方向改变。 1.3.2.4 流程图 象限的判断 fm < 0 fm < 0 fm < 0 fm < 0 Y/N Y/N Y/N Y/N Y/N fm < 0 Y/N +Y -X -X -Y -Y +X +X +Y 象限1 象限2 象限3 象限4 (源代码见附录) 1.3.3 顺圆插补 1.3.3.1 偏差计算公式 以第一象限顺圆为例介绍插补公式 如图7所示,要加工圆弧AB,设圆弧的圆心在原点,并已知圆弧的,圆点(Xcenter, Ycenter),圆弧半径为R。加工动点M(Xm1,Ym1), 它到圆心的距离为Rm。则有三种情况 fm >= 0, -y M(Xm1,Ym1) Rm=Sqr((xm1 - Xcenter) ^ 2 + (ym1 - Ycenter) ^ 2) A fm = Sqr((xm1 - Xcenter) ^ 2 + (ym1 - Ycenter) ^ 2) - R 当动点M在圆上有:Fm=0 fm < 0, +x 当动点M在圆内有:Fm<0 B 当动点M在圆外有 Fm>0 第一象限(顺圆特例) 因此,可定义圆弧偏差判别公式如下: fm = Sqr((xm1 - Xcenter) ^ 2 + (ym1 - Ycenter) ^ 2) - R 若,应沿-Y轴方向进给一步,到M+1点, F,0m 其坐标值为:(xm1,ym1-1) fm < 0, +y fm >= 0, -y fm >= 0, +x fm < 0, +x fm < 0, -x fm >= 0, -x fm >= 0, +y fm < 0, -y 222则新加工点的偏差为: F,X,Y,R,F,2Y,1m,m,m,mm111 若F,0,沿+X轴方向进一步,到M+1点,其坐标值为(xm1+1, ym1) m 222则新加工点的偏差为: F,X,Y,R,F,2X,1m,m,m,mm111 1.3.3.2 终点判断的方法 在绘图的过程中,不断地比较动点与终点的距离,当其距离小于脉冲当量时,在误差允许的范围达到终点。 1.3.3.3 其它象限的圆弧插补计算 如上图所示,其它象限的圆弧或关于X轴对称、或关于X轴对称、或关于原心对称,完全可以按第一象限顺圆偏差公式进行计算,所不同的是将进给方向改变。 1.3.3.4 流程图 象限的判断 象限1 象限2 象限3 象限4 (源代码见附录) 6.4 运动卡固化函数调用 对硬件设备的控制,实质上也就是从外设上读取设备状态,把控制信息传送到外部设备。在微机和系统控制接口插卡之间实现数据传送和交换的过程,这其中包括很多复杂的对底层控制电路的操作及读写,对于一个专业的接口开发人员来说,这项工作可能不算太难,但对于一个用户来说,这些操作将会非常复杂和繁琐,而且容易出错。因此,采用模块化的思想,将所有的控制按照功能编制成动态链接库并进行封装,供用户二次开发或调整系统功能时直接调用,大大的方便了用户,实现了软件的开放式功能。 1(初始设置函数 这些函数主要用于进行运动控制器复位,设置电机的PID参数、伺服周期,使能或禁能当前电机、电机位置清零等。如HRI_Reset()、HRI_SetKi()、HRI_SetKp()、HRI_GetKp()、HRI_SetKvff()、HRI_SetServTime()、HRI_Get ServTime()、HRI_AxisOn()、HRI_AxisOff()、HRI_ZeroPos()等函数。 2(单轴运动函数 利用这些函数可以设置当前轴的运动模式(速度跟踪或梯形曲线控制模式)、目标位置、运动速度加速度等,平滑停止或者急停各电机、获取当前轴的速度、位置、加速度等参数。如HRI_SetModeT()、HRI_SetModeV()、HRI_ SetPos()、HRI_SetVel()、HRI_SetAcc()、HRI_Smth Stp()、HRI_AbrptStp()、HRI_GetVel()、HRI_GetPos()、HRI_GetRealPos()、HRI_GetRealVel()等。 3(多轴协调运动函数 这些函数主要完成的功能有:进行不同平面的直线/圆弧/NURBS插补,设定运动的合成速度、合成加速度,进行多轴协调运动控制,进行单位换算坐标映射等。利用这些函数不仅可以完成复杂曲面的加工,还可以完成像机器人控制那样多个关节同时运动的控制。函数名称如HRI_LnXY()、HRI_LnYZ()、HRI_LnXYZ()、HRI_ArcXY()、HRI_NURBS XY()、HRI_SetSynAcc()、HRI_ SetSynVel()、HRI_GetSynVel()、HRI_Move XYZA()、HRI_MapAxis()等。 4(状态监测函数 利用这些函数,可以实时返回输入端口状态、限位开关状态、电机运动状态,进行回零处理,清除伺服报警等状态位。主要包括如下函数:HRI_ExInput()、HRI_ExOutput()、HRI_CaptHome()、HRI_Get Capt()、 HRI_Get Sts()、HRI_ClrSts()、等。 鸣 谢 岁月匆匆,很快大学四年时光就快过去了~这次毕业设计是大学四年最大、最正规的一个设计,也是大学四年最后一个设计~多少有点标志性意义,很高兴自己和同伴们能全力去做完这个设计。这次设计的题目是X-Y工作台微型计算机控制试验系统,刚开始的几个星期虽然一直在拼命查找相关的资料,看了很多相关的书,但都摸不着头绪,幸亏陆兵老师的悉心指导,我们的设计才得以进行下去。由于这是最后一次设计了,是对我们大学四年的学习的总结,所以我们在设计中充分考虑了各方面的因素,我觉得这对我们来说是最重要的,以前在做毕业设计的时候,都是只会画图,其余的加工、装配等问题就没有去考虑,现在就不同了,每做一步我们都尽量考虑各个步骤。该设备主要是对机要部门、生产等部门的监控,所以对其在实际情况中的应用性有很大要求,在设计当中,我们通过上网或者去图书馆等方式查阅了当前社会实际中运用的各种包装机的外型、参数、结构等,结合自己设计中的参数和要求设计出了自己的设计作品。所以,从这方面来说,该设备已经基本达到了满足社会需求的要求~控制方面对于我们来说是最难的,因为对于通信和程序方面,我们比较弱,为了完善自己的设计,大家都努力去看相关的书籍,把设计的内容都补了回来,使我们对这方面的课外内容多少了解了一点。在设计过程中,虽然其结构不是很大,但是设计内容相对来说比较多,要求组内各同学之间的配合要很融洽,而且进度要基本保持一致,在数据方面也要及时交流。可以说,这个毕业设计能顺利完成,是组内各位同学共同努力的结果。 作为一个学了四年的机械学生,设计控制图对我来说是一个全新的概念、新的挑战。虽然学了一个学期的单片机,但面对如此复杂的设计要求,我刚开始就觉得烦恼、想推脱这个责任。但在强烈的求知欲驱使我对单片机产生了甚浓的兴趣,逐渐地我独立完成了本设计。 随着最后一项任务的完成,我们的毕业设计也完成了,也就意味着我们校园生活最后一次作业也完成了,很感谢培养我们的老师们,没有老师们的辛勤栽培,就不会有我们的今天~感谢所有老师,我们一定不辜负老师们的辛勤汗水,到工作岗位上努力工作,为我们的国家贡献自己的力量~祝老师们一生平安~ 参考文献 [1]、王永章(机床数字控制技术[M](哈尔滨工业大学出版社,1995 [2]、吴宏,蒋仕龙等(运动控制器的现状与发展(制造技术与机床,2004,(1) [3]、机械设计手册编写组*机械设计手册(15册)*机械工业出版社;1998.5 [4]、游有鹏,王珉,朱剑英(参数曲线的自适应插补算法[J](南京航空航天大学学报,2000,32(6) [5]、李贵山,戚德虎(PCI局部总线开发者指南(西安电子大学出版社,1997 [6]、刘宇,罗安(基于双端口RAM的PCI总线与DSP的接口设计[J](计算技术与自动化,2004,23 (1) [7]、武安河、邰铭、于洪涛(Windows2000/XP WDM设备驱动程序开发.电子工业出版社,2003 [8]、龚沛曾等.《Visual Basic 程序设计教程》[M].高等教育出版社-1998 [9] 、吴振彪.机电综合设计指导[M].湛江:湛江海洋大学,1999 [10] 、杨入清.现代机械设计—系统与结构[M].上海:上海科学技术文献出版社,2000 [11] 、张立勋,孟庆鑫,张今瑜.机电一体化系统设计[M].哈尔滨:哈尔滨工程大学出版社,2000 [12] 、 郑提,唐可洪.机电一体化设计基础[M].北京:机械工业出版社,1997 [13] 、 吴祖育, 秦鹏飞.数控机床[M].上海:上海科学技术出版社,2000 [14] 、 刘乐善,欧阳星明,刘学清.微型计算机接口技术及应用,2003 [15] 、 李芷,扬文显,卜艳萍.微机原理与接口技术[M].北京:电子工业出版社,2003 附 录 读入,,代码 读入,代码: Dim gwb As Integer, gww As String ' 定取G代码的参数 Dim xb As Integer, xb1 As Integer, xw As String, xasc As Integer '定义取X值的参数 Dim yb As Integer, yb1 As Integer, yw As String, yasc As Integer '定义取Y值的参数 Dim jb As Integer, jb1 As Integer, jw As String, jasc As Integer '定义取J值的参数 Dim ib As Integer, ib1 As Integer, iw As String, iasc As Integer '定义取I值的参数 Dim xe1 As Single Do chi = InStr(chi + 1, Text1.Text, Chr(10)) Dim k As Integer '数值的个数 '取G00,G01,G02,G03 If MJW1 = 3 Then gwb = gwb2 - 1 gwb = InStr(gwb + 1, Text1.Text, "G") For k = 1 To i If a(k) > gwb And a(k) < chi Then Select Case mb(k) Case "M03" Text8.Text = "顺" Case "M04" Text8.Text = "逆" Case "M05" Text8.Text = "停" Case "M08" Text9.Text = "开" Case "M09" Text9.Text = "关" End Select End If Next k If gwb = 0 Then Exit Do gww = Mid$(Text1.Text, gwb, 3) '取X后面的数值 If MJW1 = 3 Then xb = xb2 - 1 xb = InStr(xb + 1, Text1.Text, "X") xb1 = xb xasc = 46 Do While xasc >= 48 And xasc <= 57 Or xasc = 46 Or xasc = 45 xw = Mid$(Text1.Text, xb + 1, 1) xb = xb + 1 k = k + 1 xasc = Asc(xw) Loop xe1 = Val(Mid$(Text1.Text, xb1 + 1, k)) * 10 '取Y后面的数值 If MJW1 = 3 Then yb = yb2 - 1 End If yb = InStr(yb + 1, Text1.Text, "Y") yb1 = yb yasc = 46 Do While yasc >= 48 And yasc <= 57 Or yasc = 46 Or yasc = 45 yw = Mid$(Text1.Text, yb + 1, 1) yb = yb + 1 k = k + 1 yasc = Asc(yw) Loop ye1 = Val(Mid$(Text1.Text, yb1 + 1, k)) * 10 '取I值后面的值 If gww = "G02" Or gww = "G03" Then If MJW1 = 3 Then ib = ib2 - 1 End If ib = InStr(ib + 1, Text1.Text, "I") ib1 = ib iasc = 46 Do While iasc >= 48 And iasc <= 57 Or iasc = 46 Or iasc = 45 iw = Mid$(Text1.Text, ib + 1, 1) ib = ib + 1 k = k + 1 iasc = Asc(iw) Loop Iround = Val(Mid$(Text1.Text, ib1 + 1, k)) * 10 '取J后面的值 If MJW1 = 3 Then jb = jb2 - 1 End If jb = InStr(jb + 1, Text1.Text, "J") jb1 = jb jasc = 46 Do While jasc >= 48 And jasc <= 57 Or jasc = 46 Or jasc = 45 jw = Mid$(Text1.Text, jb + 1, 1) jb = jb + 1 k = k + 1 jasc = Asc(jw) Loop Jround = Val(Mid$(Text1.Text, jb1 + 1, k)) * 10 Xcenter = xe0 + Iround: Ycenter = ye0 + Jround '求圆心坐标 If MJW1 = 0 Then xcenter1 = Xcenter: ycenter1 = Ycenter End If If MJW1 = 3 Then Xcenter = xcenter1: Ycenter = ycenter1 End If R = Sqr((xe1 - Xcenter) ^ 2 + (ye1 - Ycenter) ^ 2) End If If MJW1 = 3 Then xe0 = Val(Text5.Text) * 10: ye0 = Val(Text6.Text) * 10 MJW1 = 0 End If Select Case gww '判断gww的值,调用相应的子过程 Case "G00" Call G00(xe0, ye0, xe1, ye1) xe0 = xe1: ye0 = ye1 '把终点的值赋给开始点,作为下一个子过程的开始值 Case "G01" Call G01(xe0, ye0, xe1, ye1) xe0 = xe1: ye0 = ye1 Case "G02" Call G02(xe0, ye0, xe1, ye1, Xcenter, Ycenter, R) xe0 = xe1: ye0 = ye1 Case "G03" Call G03(xe0, ye0, xe1, ye1, Xcenter, Ycenter, R) xe0 = xe1: ye0 = ye1 End Select If MJW1 = 2 Then m1 = m: xb2 = xb1: yb2 = yb1: ib2 = ib1: jb2 = jb1: gwb2 = gwb End If If MJW1 = 1 Or MJW1 = 2 Then Exit Do Loop Until gwb = 0 End Sub '直线插补子过程 Public Sub G01(ByVal xe0 As Integer, ByVal ye0 As Integer, ByVal xe1 As Integer, ByVal ye1 As Integer) Dim fm As Single Dim xm1 As Double, ym1 As Double xm0 = xe0: ym0 = ye0: xm1 = xe0: ym1 = ye0 '初始化画直线起点X值 画直线起点Y值 画直线终点X值 画直线终点Y值 If xe0 <> xe1 And ye0 <> ye1 Then k = (ye1 - ye0) / (xe1 - xe0) '直线斜率 End If MJW1 = 0 Do Picture1.Line (xm0, ym0)-(xm1, ym1), &H110CE4 '画加工轨迹线 xm0 = xm1: ym0 = ym1 '把当前加工点的坐标赋值给下一点的起点 If xe0 <> xe1 And ye0 <> ye1 Then '斜率存在而且不等于零的情况 If xe1 <> xm1 Then fm = (ym1 - ye0) * (xe1 - xe0) - (xm1 - xe0) * (ye1 - ye0) '实时加工点的位置判断 End If If k > 0 Then '判断斜率的正负 If xe0 < xe1 Then '斜率大于零直线插补情况1 If fm < 0 Then ym1 = ym1 + 1 Call delay3 Else xm1 = xm1 + 1 Call delay1 End If '斜率大于零直线插补情况2 Else If fm < 0 Then ym1 = ym1 - 1 Call delay4 Else xm1 = xm1 - 1 Call delay2 End If End If Else '斜率小于零直线插补情况1 If xe0 < xe1 Then If fm < 0 Then xm1 = xm1 + 1 Call delay1 Else ym1 = ym1 - 1 Call delay4 End If Else If fm < 0 Then '斜率小于零直线插补情况2 xm1 = xm1 - 1 Call delay2 Else ym1 = ym1 + 1 Call delay3 End If End If End If Else If xe0 = xe1 Then '斜率不存在的情况 If ye0 > ye1 Then ym1 = ym1 - 1 Call delay4 Else ym1 = ym1 + 1 Call delay3 End If Else '斜率等于零的情况 If xe0 > xe1 Then xm1 = xm1 - 1 Call delay2 Else xm1 = xm1 + 1 Call delay1 End If End If End If If xe0 = xe1 Or ye0 = ye1 Then MJW2 = (xm1 <> xe1 Or ym1 <> ye1) '运行条件1 Else '运行条件2 MJW2 = (xm1 <> xe1 And ym1 <> ye1) End If Text5.Text = Format$(xm1 / 10, "00.0000") '坐标值输出形式 Text6.Text = Format$(ym1 / 10, "00.0000") Text7.Text = Format$(0, "00.0000") If MJW1 = 1 Or MJW1 = 2 Then Exit Do Loop While MJW2 End Sub '逆圆插补子过程 Public Sub G03(ByVal xe0 As Single, ByVal ye0 As Single, ByVal xe1 As Single, ByVal ye1 As Single, ByVal Xcenter As Single, ByVal Ycenter As Single, ByVal R As Single) Dim MJW3 As Integer Dim l As Single '动点到圆心的距离 xm0 = xe0: ym0 = ye0: xm1 = xe0: ym1 = ye0 '初始化画直线起点X值 画直线起点Y值 画直线终点X值 画直线终点Y值 MJW1 = 0 Do Picture1.Line (xm0, ym0)-(xm1, ym1), &H110CE4 '画加工轨迹线 xm0 = xm1: ym0 = ym1 '把当前加工点的坐标赋值给下一点的起点 l = Sqr((xm1 - Xcenter) ^ 2 + (ym1 - Ycenter) ^ 2) '判断动点在以圆心为坐标原点的坐标系中所在的像限 If xm1 >= Xcenter And ym1 > Ycenter Then '第一像限 MJW3 = 1 ElseIf xm1 < Xcenter And ym1 >= Ycenter Then '第二像限 MJW3 = 2 ElseIf xm1 <= Xcenter And ym1 < Ycenter Then '第三像限 MJW3 = 3 ElseIf xm1 > Xcenter And ym1 <= Ycenter Then '第四像限 MJW3 = 4 End If Select Case MJW3 Case 1 If l < R Then ym1 = ym1 + 1 Call delay Else xm1 = xm1 - 1 Call delay End If Case 2 If l < R Then 1 xm1 = xm1 - Call delay Else ym1 = ym1 - 1 Call delay End If Case 3 If l < R Then ym1 = ym1 - 1 Call delay Else xm1 = xm1 + 1 Call delay End If Case 4 If l < R Then xm1 = xm1 + 1 Call delay Else ym1 = ym1 + 1 Call delay End If End Select Text5.Text = Format$(xm1 / 10, "00.0000") Text6.Text = Format$(ym1 / 10, "00.0000") Text7.Text = Format$(0, "00.0000") If MJW1 = 1 Or MJW1 = 2 Then Exit Do Loop While xm1 <> xe1 Or ym1 <> ye1 End Sub '顺圆插补子过程 Public Sub G02(ByVal xe0 As Single, ByVal ye0 As Single, ByVal xe1 As Single, ByVal ye1 As Single, ByVal Xcenter As Single, ByVal Ycenter, ByVal R As Single) Dim MJW3 As Integer Dim fm As Single '动点到圆心的距离 xm0 = xe0: ym0 = ye0: xm1 = xe0: ym1 = ye0 '初始化画直线起点X值 画直线起点Y值 画直线终点X值 画直线终点Y值 MJW1 = 0 Do Picture1.Line (xm0, ym0)-(xm1, ym1), &H110CE4 '画加工轨迹线 xm0 = xm1: ym0 = ym1 ''把当前加工点的坐标赋值给下一点的起点 fm = Sqr((xm1 - Xcenter) ^ 2 + (ym1 - Ycenter) ^ 2) - R '判断动点相对圆弧的位置 '判断动点在以圆心为坐标原点的坐标系中所在的像限 If xm1 >= Xcenter And ym1 > Ycenter Then '加工点在第一像限时 MJW3 = 1 ElseIf xm1 < Xcenter And ym1 >= Ycenter Then '加工点在第二像限时 MJW3 = 2 ElseIf xm1 <= Xcenter And ym1 < Ycenter Then '加工点在第三像限时 MJW3 = 3 ElseIf xm1 > Xcenter And ym1 <= Ycenter Then '加工点在第四像限时 MJW3 = 4 End If Select Case MJW3 Case 1 '加工点在第一像限时圆弧插 补 If fm <= 0 Then xm1 = xm1 + 1 Call delay1 Else ym1 = ym1 - 1 Call delay4 End If Case 2 '加工点在第二像限时圆弧插 补 If fm <= 0 Then ym1 = ym1 + 1 Call delay3 Else xm1 = xm1 + 1 Call delay1 End If Case 3 '加工点在第三像限时圆弧 插补 If fm <= 0 Then xm1 = xm1 - 1 Call delay2 Else ym1 = ym1 + 1 Call delay3 End If Case 4 '加工点在第四像限时圆弧 插补 If fm <= 0 Then ym1 = ym1 - 1 Call delay4 Else xm1 = xm1 - 1 Call delay2 End If End Select Text5.Text = Format$(xm1 / 10, "00.0000") '坐标值输出形式 Text6.Text = Format$(ym1 / 10, "00.0000") Text7.Text = Format$(0, "00.0000") If MJW1 = 1 Or MJW1 = 2 Then Exit Do Loop While xm1 <> xe1 Or ym1 <> ye1 '运行条件1
本文档为【x-y任务台微型计算机操纵试验系统仿单[整理版]】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_321575
暂无简介~
格式:doc
大小:183KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-12-02
浏览量:14