




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、综合设计课程设计 设计要求 1 设计要求1.1 设计要求(1)设计出逐点比较法插补软件流程图;(2)编写出逐点比较法插补程序;(3)要求用软件能够实现任意象限圆弧(g03)的插补计算;(4)要求软件能够处理特殊轮廓的插补,例如坐标中任意圆弧等;(5)插补结果要求能够以图形模拟进行输出。2 设计目的2.1 设计目的(1)了解连续轨迹控制数控系统的组成原理;(2)了解逐点比较法插补的基本原理;(3)掌握逐点比较法插补的软件实现方法。3 总体方案比较3.1 各多种方案的特点第一:采用逐点比较法插补。逐点比较法的基本原理是被控对象在按要求的轨迹运动时,每走一步都要与规定的轨迹进行比较,由此结果决定下一
2、步移动的方向。逐点比较法既可以作直线插补又可以作圆弧插补。这种算法的特点是,运算直观,插补误差小于一个脉冲当量,输出脉冲均匀,而且输出买成速度变化小,调节方便,因此在两坐标数控机床中应用较为普遍第二:数学积分法插补。又称为微分分析法。这种插补方法可实现一次、二次、甚至高次曲线的插补,也可以实现多坐标联动控制。只要输入不多的几个数据,就能加工出圆弧等形状较为复杂的轮廓曲线。作直线插补时,脉冲分配也较均匀。第三:数据采样插补。数据采样插补实际上是一种粗插补过程,它所产生的微小线段仍然比较大,必须进一步对其密化(即精插补)。粗插补算法比较复杂,综合设计课程设计 多cpu结构cnc系统硬件原理图大多用
3、高级语言编制;精插补算法比较简单,多用汇编语言或硬件插补器实现。3.2 方案选择根据课题要求,对逆圆插补。根据两种方案的比较,都是很好的方法,但由于圆是二次,用采用逐点比较法插补进行设计比较方便、简单,所以根据各种插补方法的特点,选择用逐点比较法来实现。4 多cpu结构cnc系统硬件原理图4.1 cnc系统原理图图4.1 共享总线的多cpu结构的cnc系统结构框图4.2 原理图极其说明共享总线机构,只有主模块有权控制系统的总线,在某一时刻只能有一个猪模块占有总线。共享总线结构的模块之间的通行,主要依靠存储器的实现,采用公共存储器的方式。共享存储器结构,采用多端口存储器来实现各cpu之间的互连和
4、通信,每个端口配有一套数据、地址、控制线,以端口访问,由多端控制逻辑电路解决访问冲突。管理模块:该模块是管理和组织整个cnc系统工作的模块,主要功能包括:初始化、中断管理、总线裁决、系统出错识别和处理、系统硬件与软件诊断等;插补模块:该模块用于在插补完成前,进行零件程序的译码、刀具补偿、坐标位移量计算、进给速度处理等预处理,然后进行插补计算,并给顶各坐标轴的位置综合设计课程设计 逐点比较法直线插补原理值;位置控制模块:对坐标位置给定值与由位置检测到的实际位置值进行比较并获得差值,进行自动加减、回基准点、对伺服系统滞后量进行监视和漂移补偿,然后得到速度控制的模块电压,去驱动进给电动机;plc模块
5、:零件程序的开关量(s、m、t)和机床面板来的信号在这个模块中进行逻辑处理,实现机床电器的启、停控制,刀具交换,转台分度,工件数量和运转时间的次数等;命令与数据输入/输出模块;指零件程序、参数和数据,各种操作指令的输入/输出,以及显示所需要的各种接口电路;存储器模块:指程序和数据的主存储器,或功能模块数据传送用的共享存储器5 逐点比较法直线插补原理逐点比较法的基本原理是被控对象在按要求的轨迹运动时,每走一步都要与规定的轨迹进行比较,由此结果决定下一步移动的方向。逐点比较法既可以作直线插补又可以作圆弧插补。这种算法的特点是,运算直观,插补误差小于一个脉冲当量,输出脉冲均匀,而且输出买成速度变化小
6、,调节方便,因此在两坐标数控机床中应用较为普遍。5.1 逐点比较法圆弧插补原理加工一个圆弧,很容易令人想到用加工点到圆心的距离与该圆弧的名义半径相比较来反映加工偏差。设要加工图3-1所示的第一象限逆时针走向的圆弧ab,半径为r,以圆点为圆心,起点坐标为a(,),在xy坐标平面第一象限中,点的加工偏差有以下3种情况。若加工点正好落在圆弧上,则下式成立,即若加工点落在圆弧外侧,则,即若加工点落在圆弧内侧,则,即将上面各式分别改写为下列形式,即 (在圆弧上) (在圆弧外侧) (在圆弧外侧)取加工偏差判别式为若点在圆弧外侧或圆弧上,则满足的条件时,向轴发出一负向运动的进给脉冲;若点在圆弧内测,即满足条
7、件的条件时,则向轴发出一正向运动的进给脉冲。为了简化偏差判别式的运算,仍用递推法来推算下一步新的加工偏差。设加工点在圆弧外侧或圆弧上,则加工偏差为故轴必须向负方向进给一步,移动到新的加工点,其加工偏差为 (5-1)设加工点在圆弧的内测,则。那么y轴须向正向进给一步,移到新的加工点,其加工偏差为(5-2)根据式(3-)及式(3-)可以看出,新的加工点的偏差值可以用前一点的偏差值递推出来。递推法把圆弧偏差运算式由平方运算化为加法和乘2运算,而对二进制来说,乘2运算是容易实现的。5.2 圆弧插补的运算过程圆弧插补的运算过程与直线插补的过程基本一样,不同的是,圆弧插补时,动点坐标的绝对值总是一个增大,
8、另一个减小。如对于第一象限逆圆来说,动点坐标的增量公式为 圆弧插补运算每进给一步也需要偏差判别、进给、偏差计算、终点判别四个工作节拍,运算中f寄存偏差值为;x和y分别寄存x和y动点的坐标值,开始分别存放和;n寄存终点判别值:5.3 节拍控制和运算程序的流程图圆弧插补的节拍控制:综上所述,逐点比较法圆弧插补的全过程,每走一步都要进行以下四个节拍,如图5-2所示。第一节拍偏差判别:判断道具当前位置相对于给定的轮廓的偏差情况,以此决定道具移动的方向;第二节拍进给:根据偏差判断结果,控制道具相对于工件轮廓进给一步,即向给定的轮廓靠拢,减小偏差;第三节拍偏差计算:由于道具进给已经改变了位置,因此应计算出
9、道具当前位置的新偏差,为下次判别做准备;第四节拍终点判别:判别刀具是否已到达被加工轮廓的终点。若已经到达终点,则停止插补;若还未到达终点则继续插补。如此不断重复上述四个节拍就可以加工出所要加工的轮廓。5.3圆弧插补的象限处理与坐标交换5.3.1圆弧插补的象限处理上面仅讨论了第一象限的逆圆弧插补,实际上圆弧所在的象限不同,顺逆不同,则插补公式和进给方向均不同。逆圆插补有四种情况,如图5-3所示。 现将逆圆弧插补的四种情况的偏差计算及进给方向列于表3-1中,其中r表示圆弧,n表示逆时针,四个象限分别用数字1、2、3、4标注,例如nr1表示第一象限逆圆。表5-1 xy平面内逆圆插补的进给方向与偏差计
10、算线型偏差偏差计算进给方向与坐标nr1ff+2x+1xx+1nr1nr2ff-2x+1xx-1nr2nr3ff+2y+1yy+1nr3nr4ff-2y+1yyx-1nr45.3.2圆弧自动过象限所谓圆弧自动过象限,是指圆弧的起点和终点不在同一象限内,如图3-4所示。为实现一个程序段的完整功能,需设置圆弧自动过象限功能。要完成过象限的功能,首先应判别何时过象限。过象限有一显著特点,就是过象限时刻正好是圆弧与坐标轴相交的时刻,因此在两个坐标值中必有一个为零,判断是否过象限只要检查是否有坐标值为零即可。过象限后,圆弧线型也改变了,但过象限时象限的转换是有一定规律的。当圆弧起点在象限时,逆时针圆弧过象
11、限后转换顺序nr1nr2nr3nr4nr1,每过一次象限,象限顺序号加1,当从第四象限向第一象限过象限时,象限顺序号从4变去。综合设计课程设计 软件结构设计6 软件结构设计6.1 逐点比较法圆弧插补的程序设计方案为了直观显示数控插补程序,必须动态的描述道具从起点a到终点b的过程中位置变化情况,现选用visual basic来设计插补过程。使用窗体和控件设置程序的界面。6.2程序实现方法根据插补的要求,该程序首先要判断加工圆弧的象限,然后通过偏差判断进给偏差计算判别终点完成圆弧插补,其工作过程如图4-1所示。6.3程序界面设计该程序运行时首先要输入插补直线的起点和终点x、y坐标以及圆心坐标、半径
12、值,点击“确定”按钮,再点击“模拟”按钮后进行模拟,点击“退出”按钮,即可退出程序界面,若需要继续进行下一次模拟,则可以点击“重新开始”按钮,继续输入下一组数据进行模拟。其有关控件设置如表6-1所示,工作界面设计如图6-2所示,某一圆弧插补的运行界面如图6-3所示。表6-1程序控件设计控件名称控件标题(caption属性)label1请在下面输入起点和终点坐标label2起点坐标label3终点坐标label4xlabel5ylabel6圆心label7半径label8rlabel9请在下面输入圆心坐标和半径值label10x(坐标轴x的标号)label11y(坐标轴y的标号)text1无定义
13、(起点x坐标)text2无定义(起点y坐标)text3无定义(终点x坐标)text4无定义(终点y坐标)text5无定义(圆心x坐标)text6无定义(圆心y坐标)text7无定义(半径r值)command1确定command2模拟command3退出command4重新开始图6-2 工作界面设计图图6-3 圆弧插补运行界面图6.4程序代码设计dim n, xa, ya, x(1000), y(1000), f(1200), j, k, p, i, r, x0, y0private sub command1_click()label1.visible = false 控制各个控件的可见性lab
14、el2.visible = falselabel3.visible = falselabel4.visible = falselabel5.visible = falselabel6.visible = falselabel7.visible = falselabel8.visible = falselabel9.visible = falselabel10.visible = truelabel11.visible = truetext1.visible = falsetext2.visible = falsetext3.visible = falsetext4.visible = fals
15、etext5.visible = falsetext6.visible = falsetext7.visible = falseform1.cls 清除窗体中的内容x(0) = val(text1.text) 将文本框1中输入的坐标值赋给x(0)y(0) = val(text3.text) 将文本框2中输入的坐标值赋给y(0)xa = val(text2.text) 将文本框3中输入的坐标值赋给xaya = val(text4.text) 将文本框4中输入的坐标值赋给yax0 = val(text5.text) 将文本框5中输入的坐标值赋给x0y0 = val(text6.text) 将文本框
16、6中输入的坐标值赋给y0r = val(text7.text) 将文本框7中输入的坐标值赋给rif abs(x(0) abs(y(0) then 将最大的坐标值赋给pp = abs(y(0)elsep = abs(x(0)end ifif p abs(xa) thenp = abs(xa)end ifif p 0 then 判断起点和终点是否都在坐标原点 scale (-1.1 * p, 1.2 * p)-(1.1 * p, -1.1 * p) 建立窗体的坐标系 line (-1.1 * p, 0)-(1.1 * p, 0) 画x轴轴线 line (0, 1.1 * p)-(0, -1.1 *
17、 p) 画y轴轴线 label5.left = 0.05 * p label5.top = p label6.top = -0.05 * p label6.left = 1.05 * pelse 起点和终点都在坐标原点时弹出注意信息框 msgbox 起点坐标和终点都是坐标原点,请点击“重新开始”按钮重新输入!, vbokonly, 注意end ifn = abs(ya - y(0) + abs(xa - x(0) 插补的总步数circle (x0, y0), r 画出需要插补的圆command2.enabled = trueend subprivate sub command2_click()
18、 模拟按钮command2.enabled = falsef(0) = 0for i = 0 to n - 1if (x(0) 0) and (y(0) = 0) then 起点第一象限 if f(i) = 0 then 偏差大于0时,向x负方向走一步 for j = x(i) to x(i) - 1 step -0.0001 pset (j, y(i), 255 用红色的点画直线 next j x(i + 1) = x(i) - 1 下一点的坐标和偏差计算 y(i + 1) = y(i) f(i + 1) = f(i) - 2 * x(i) + 1 else 偏差小于0时,向y正方向走一步
19、for j = y(i) to y(i) + 1 step 0.0001 pset (x(i), j), 255 用红色的点画直线 next j y(i + 1) = y(i) + 1 下一点的坐标和偏差计算 x(i + 1) = x(i) f(i + 1) = f(i) + 2 * y(i) + 1 end if end if if (x(0) = 0) and (y(0) 0) then 起点第二象限 if f(i) 0 then 偏差小于0时,向x负方向走一步 for j = x(i) to x(i) - 1 step -0.0001 pset (j, y(i), 255 用红色的点画直
20、线 next j x(i + 1) = x(i) - 1 下一点的坐标和偏差计算 y(i + 1) = y(i) f(i + 1) = f(i) - 2 * x(i) + 1 else 偏差大于0时,向y负方向走一步 for j = y(i) to y(i) - 1 step -0.0001 pset (x(i), j), 255 用红色的点画直线 next j y(i + 1) = y(i) - 1 下一点的坐标和偏差计算 x(i + 1) = x(i) f(i + 1) = f(i) - 2 * y(i) + 1 end if end if if (x(0) 0) and (y(0) =
21、0 then 偏差大于0时,向x正方向走一步 for j = x(i) to x(i) + 1 step 0.0001 pset (j, y(i), 255 用红色的点画直线 next j x(i + 1) = x(i) + 1 下一点的坐标和偏差计算 y(i + 1) = y(i) f(i + 1) = f(i) + 2 * x(i) + 1 else 偏差小于0时,向y负方向走一步 for j = y(i) to y(i) - 1 step -0.0001 pset (x(i), j), 255 用红色的点画直线 next j y(i + 1) = y(i) - 1 下一点的坐标和偏差计算
22、 x(i + 1) = x(i) f(i + 1) = f(i) - 2 * y(i) + 1 end if end if if (x(0) = 0) and (y(0) 0) then 起点第四象限 if f(i) 0 then 偏差小于0时,向x正方向走一步 for j = x(i) to x(i) + 1 step 0.0001 pset (j, y(i), 255 用红色的点画直线 next j x(i + 1) = x(i) + 1 下一点的坐标和偏差计算 y(i + 1) = y(i) f(i + 1) = f(i) + 2 * x(i) + 1 else 偏差大于0时,向y正方向走一步 for j = y(i) to y(i) + 1 step 0.0001 pset (x(i), j), 255 用红色的点画直线 next j y(i + 1) = y(i) + 1 下一点的坐标和偏差计算 x(i + 1) = x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行服务竞赛试题及答案
- 智能风控系统创新创业项目商业计划书
- 2025内蒙古呼伦贝尔农垦集团有限公司校园招聘50人笔试备考参考答案详解
- 2025内蒙古呼伦贝尔林业集团有限公司招聘工作人员5人笔试备考及答案详解(名校卷)
- 教师招聘之《幼儿教师招聘》考前冲刺测试卷讲解附参考答案详解【巩固】
- 押题宝典教师招聘之《小学教师招聘》通关考试题库含完整答案详解【易错题】
- 2025年教师招聘之《小学教师招聘》综合提升练习题及完整答案详解(有一套)
- 教师招聘之《小学教师招聘》综合练习带答案详解(突破训练)
- 押题宝典教师招聘之《幼儿教师招聘》模考模拟试题附答案详解(轻巧夺冠)
- 2025内蒙古呼伦贝尔旅业旅游集团股份公司招聘5人笔试备考及答案详解(有一套)
- 北京数语科技Datablau数据模型与数据资产平台介绍
- 人体对外界环境的感知+课件-2025-2026学年人教版生物八年级上册
- 无人机驾驶培训专业知识课件
- 临床护理师资培训体系构建
- 生物标志物应用-洞察及研究
- 长跑课件教学课件
- 2025陕西宝石花油气技术服务有限公司宝鸡分公司招聘(310人)考前自测高频考点模拟试题带答案详解
- 2025年部编版七年级上册历史第三、四单元复习提纲
- 腹股沟疝的护理教学查房
- 婚庆公司与酒店合作协议书
- 华为基层管理培训课件
评论
0/150
提交评论