数字控制技术实验报告 插补程序.doc_第1页
数字控制技术实验报告 插补程序.doc_第2页
数字控制技术实验报告 插补程序.doc_第3页
数字控制技术实验报告 插补程序.doc_第4页
数字控制技术实验报告 插补程序.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字控制技术实验程序附带五个插补程序及效果图void CDLGLTMEC_VCB:OnBnLtmecVcbLn() /直线插补/ TODO: Add your control notification handler code hereint Fline1=0;int xoLine1=0;int yoLine1=0;/初始值设定int xeLine1=5;int yeLine1=3;/终点值坐标SetOrgPoint(0,0);/设置初始坐标int NLine1=abs(xeLine1-xoLine1)+abs(yeLine1-yoLine1);/总步数for(int i=1;i=0)/在直线上方或直线上AddXRun();Fline1=Fline1-yeLine1;checkall();else/在直线下方AddYRun();Fline1=Fline1+xeLine1;checkall();StartVCB();void CDLGLTMEC_VCB:OnBnLtmecVcbRn() /圆弧插补/请在下面添加差补算法程序int FRound1=0;int xoRound1=4;/初始值设定int yoRound1=0;int xeRound1=0;int yeRound1=4;/终点值坐标SetOrgPoint(4,0);/设置初始坐标int NRound1=abs(xeRound1-xoRound1)+abs(yeRound1-yoRound1);/总步数for(int i=1;i=0)/在圆外侧或圆上MinusXRun();FRound1=FRound1-2*xoRound1+1;checkall();xoRound1=xoRound1-1;else/在圆内AddYRun();FRound1=FRound1+2*yoRound1+1;checkall();yoRound1=yoRound1+1;/有待发送消息,以下代码请勿改动StartVCB();void CDLGLTMEC_VCB:OnBnLtmecVcbLd() /DDA直线插补/请在下面添加差补算法程序int xoLine2=0;int yoLine2=0;/初始值设定int xeLine2=5;int yeLine2=4;/终点值坐标SetOrgPoint(0,0);/设置初始坐标int JvxLine=xeLine2;int JvyLine=yeLine2;/被积函数寄存器int JrxLine=0;int JryLine=0;/累加器int LineEnd=8;/终点判别while(LineEnd!=0)JrxLine=JrxLine+JvxLine;if(JrxLine=LineEnd&JryLine=LineEnd)/是否需要同时进给AddXRun();AddYRun();checkall();elseif(JrxLine=LineEnd)/X方向累加器是否溢出AddXRun();checkall();JryLine=JryLine+JvyLine;if(JryLine=LineEnd)/Y方向累加器是否溢出AddYRun();checkall();LineEnd=LineEnd-1;/有待发送消息,以下代码请勿改动StartVCB();void CDLGLTMEC_VCB:OnBnLtmecVcbRd() /DDA圆弧插补/请在下面添加差补算法程序int xoRound2=5;int yoRound2=0;/初始值设定int xeRound2=0;int yeRound2=5;/终点值坐标SetOrgPoint(5,0);/设置初始坐标int JvxRound=xeRound2;int JvyRound=yeRound2;/被积函数寄存器int JrxRound=0;int JryRound=0;/累加器int JexRound=abs(xoRound2-xeRound2);int JeyRound=abs(yoRound2-yeRound2);/int RoundEnd=8;/终点判别int Flagx;int Flagy;/标志位判别是否有该方向进给脉冲while(JexRound!=0|JeyRound!=0)Flagx=Flagy=0;if(JexRound!=0)JrxRound=JrxRound+JvxRound;if(JrxRound=RoundEnd)/X方向累加器是否溢出JexRound=JexRound-1;Flagx=1;if(JeyRound!=0)JryRound=JryRound+JvyRound;if(JryRound=RoundEnd)/Y方向累加器是否溢出JeyRound=JeyRound-1;Flagy=1;if(Flagx=1)/X方向进给JvyRound=JvyRound-1;MinusXRun();if(Flagy=1)/Y方向进给JvxRound=JvxRound+1;AddYRun();if(Flagx|Flagy)checkall();/有待发送消息,以下代码请勿改动StartVCB();void CDLGLTMEC_VCB:OnBnLtmecVcbEx() /过象限/请在下面添加差补算法程序int xoRound2=5;int yoRound2=0;/初始值设定int xeRound2=-3;int yeRound2=4;/终点值坐标SetOrgPoint(5,0);/设置初始坐标int JvxRound=xeRound2;int JvyRound=yeRound2;/被积函数寄存器int JrxRound=0;int JryRound=0;/累加器int JexRound=abs(xoRound2-xeRound2);int JeyRound=abs(yoRound2-yeRound2);/int RoundEnd=8;/终点判别int Flagx;int Flagy;/标志位判别是否有该方向进给脉冲while(JexRound!=0|JeyRound!=0)Flagx=Flagy=0;if(JexRound!=0)JrxRound=JrxRound+JvxRound;if(abs(JrxRound)=RoundEnd)/X方向累加器是否溢出JexRound=JexRound-1;Flagx=1;if(JeyRound!=0)JryRound=JryRound+JvyRound;if(abs(JryRound)=RoundEnd)/Y方向累加器是否溢出JeyRound=JeyRound-1;Flagy=1;if(F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论