计算机控制课程设计逐点比较法直线插补原理的实现.docx

上传人:b****7 文档编号:9823476 上传时间:2023-02-06 格式:DOCX 页数:21 大小:248.19KB
下载 相关 举报
计算机控制课程设计逐点比较法直线插补原理的实现.docx_第1页
第1页 / 共21页
计算机控制课程设计逐点比较法直线插补原理的实现.docx_第2页
第2页 / 共21页
计算机控制课程设计逐点比较法直线插补原理的实现.docx_第3页
第3页 / 共21页
计算机控制课程设计逐点比较法直线插补原理的实现.docx_第4页
第4页 / 共21页
计算机控制课程设计逐点比较法直线插补原理的实现.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

计算机控制课程设计逐点比较法直线插补原理的实现.docx

《计算机控制课程设计逐点比较法直线插补原理的实现.docx》由会员分享,可在线阅读,更多相关《计算机控制课程设计逐点比较法直线插补原理的实现.docx(21页珍藏版)》请在冰豆网上搜索。

计算机控制课程设计逐点比较法直线插补原理的实现.docx

计算机控制课程设计逐点比较法直线插补原理的实现

课程设计任务书

学生姓名:

专业班级:

指导教师:

工作单位:

题目:

逐点比较插补原理的实现

初始条件:

设计一个计算机控制步进电机系统,该系统利用PC机的并口输出控制信号,其信号驱动后控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补绘制出如下曲线。

 

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.设计硬件系统,画出电路原理框图;

2.定义步进电机转动的控制字;

3.推导出用逐点比较法插补绘制出下面曲线的算法;

4.编写算法控制程序,参数由键盘输入,显示器同时显示曲线;

5.撰写设计说明书。

课程设计说明书应包括:

设计任务及要求;方案比较及认证;系统滤波原理、硬件原理,电路图,采用器件的功能说明;软件思想,流程,源程序;调试记录及结果分析;参考资料;附录:

芯片资料,程序清单;总结。

时间安排:

6月22日—6月23日查阅和准备相关技术资料,完成整体方案设计

6月24日—6月25日完成硬件设计

6月26日—6月27日编写调试程序

6月28日—6月29日撰写课程设计说明书

6月30日提交课程设计说明书、图纸、电子文档

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

摘要

本文主要讨论利用逐点比较法实现第一象限的直线插补。

所谓逐点比较插补,就是刀具或绘图笔每走一步都要和给点轨迹上的坐标值进行比较,看这点在给点轨迹的上方还是下方,从而决定下一步的进给方向。

对于本设计所要求的直线轨迹,如果该点在直线的上方,则控制步进电机向+X方向进给一步,如果该点在直线的下方,那么控制步进电机向+Y轴方向进给一步。

如此,走一步、看一看,比较一次,决定下一步的走向,以便逼近给定轨迹,即形成逐点比较插补。

插补计算时,每走一步,都要进行以下四个步骤的计算过程,即偏差判别、坐标进给、偏差计算、终点判断。

设计具体算法时,首先根据直线轨迹参数,计算出偏差计算公式及递推公式。

由程序判断出偏差的正负号,从而决定坐标的进给方向,再根据递推公式计算出坐标进给后的偏差,若未到达终点,则返回偏差判别,如此循环。

可以根据起点和终点的坐标位置,计算出总的进给步数Nxy,X或Y的坐标每进给一步,这个值就减一,若Nxy=0,就到达了终点,这就是终点判别的方法。

关键词:

逐点比较法、直线插补、步进电机、坐标进给、源程序。

 

逐点比较插补原理的实现

1设计任务和要求

设计一个微型计算机控制步进电机系统,该系统利用微型机的并口输出控制信号,其信号驱动后控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补原理绘制出如下图所示的目标曲线。

 

图1目标曲线

2设计步骤

本设计大致可分为三个步骤:

硬件设计、软件设计和系统的运行调试。

2.1硬件设计

2.1.1接口示意图

两台三相步进电机控制接口如图2所示。

图2系统接口示意图

2.1.2方案论证

单片机的接口电路可以是锁存器,也可以是专门的接口芯片,本设计采用可编程接口芯片8255。

由于步进电机需要的驱动电流比较大,所以单片机和步进电机的连接还要有驱动电路,如何设计驱动电路成了问题的关键。

设计方案一如图3所示,当某相上驱动信号变为高电平时,达林顿管导通,从而使得该相通电。

图3驱动电路方案一

设计方案二如图4所示,在单片机与驱动器之间增加一级光电隔离,当驱动信号为高电平时,发光二极管发光,光敏三极管导通,从而使达林顿管截止,该相不通电;当驱动信号为低电平时,则步进电机的该相通电。

图4驱动电路方案二

综合比较两种设计方案可知,方案二有抗干扰能力,且可避免一旦驱动电路发生故障,造成高电平信号进入单片机而烧毁器件。

所以,本设计选择方案二。

2.1.3单片机与8255的接口

MCS-51单片机可以和8255直接连接而不需要任何外加逻辑器件,接口示意图如图5所示。

因为8255的B口和C口具有驱动达林顿管的能力,所以将采用B口和C口输出驱动信号。

图5单片机与8255的接口

2.1.4硬件接线原理图

图6系统硬件接线原理图

单片机控制步进电机的硬件接线如图6所示。

因为8255的片选信号

接单片机的地址线P2.7,A1、A0通过地址锁存器接到了8051单片机的地址线P0.1和P0.0,由硬件接线图可以清楚地知道,8255的各口地址为:

A口地址:

7FFCH

B口地址:

7FFDH

C口地址:

7FFEH

控制口地址:

7FFFH

同时,B口和C口都作为输出口,8255工作在方式0。

下面以8255的B口输出端PB0为例说明控制的工作原理。

若PB0输出0,经反相器74LS04后变为高电平,发光二极管正向导通发光。

在光线的驱动下,光敏三极管导通,+5V的电压经三极管引入地线而不驱动达林顿管。

因而,达林顿管截止,X轴上步进电机的C相不通电。

若PB0输出1,反相后变为低电平,发光二极管不导通。

从而光敏三极管截止,+5V电压直接驱动达林顿管导通,X轴上步进电机的C相有从电源流向地线的电流回路,即C相得电。

2.1.5元件清单

表1元件清单表

名称

位号

型号

数量

单片机

——

8051

1

地址锁存器

——

74LS373

1

并行接口芯片

——

8255A

1

反相器

——

74LS04

6

电阻

R1—R24

1K

24

光电三极管

U1—U3

4N25

3

达林顿管

Q1—Q6

NPNDAR

6

二极管

D1—D6

IN4001

6

2.2软件设计

2.2.1软件设计原理

2.2.1.1直线插补原理

逐点比较法的基本原理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给。

图7第一象限直线

如图7所示,设直线的起点为坐标原点,终点坐标为A(

),点m(

)为加工点(动点)。

定义偏差公式为

=0,表明点m在OA直线段上;若

>0,表明点m在OA直线段上方,即点m’处;若

<0,表明点m在OA直线段下方,即点m’’处。

由此可得第一象限直线逐点比较法插补的原理是:

从直线的起点出发,当

0时,沿+x轴方向走一步;当

<0时,沿+y轴方向走一步;当两方向所走的步数与终点坐标(

)相等时,发出终点到信号,停止插补。

可以将上面所定义的偏差公式进一步简化,推导出偏差的递推公式。

1当

0时,沿+x轴方向进给一步,

(1)

②当

<0时,沿+y轴方向进给一步,

(2)

(1)和式

(2)是简化后偏差的计算公式,在公式中只有一次加法或减法运算,新加工点的偏差都可由前一点偏差和终点坐标相加或相减得到。

2.2.1.2步进电机工作原理

步进电机有三相、四相、五相、六相等多种,本设计采用三相步进电机的三相六拍工作方式,其通电顺序为

……

各相通电的电压波形如图8所示。

图8三相六拍工作的电压波形

当步进电机的相数和控制方式确定之后,PB0—PB2和PC0—PC2输出数据变化的规律就确定了,这种输出数据变化规律可用输出字来描述。

为了便于寻找,输出字以表的形式存放在计算机指定的存储区域。

表2给出了三相六拍控制方式的输出字表。

表2三相六拍控制方式输出字表

步序

控制位

工作状态

控制字表

C相

B相

A相

1

0

0

1

A

01H

2

0

1

1

AB

03H

3

0

1

0

B

02H

4

1

1

0

BC

06H

5

1

0

0

C

04H

6

1

0

1

CA

05H

2.2.28255的初始化编程

由前面的分析知道,8255工作在方式0,控制口地址为7FFFH,控制字为90H。

所以,8255的初始化编程如下。

MOVDPTR,#7FFFH;控制口地址送DPTR

MOVA,#90H;控制字送寄存器A

MOVXDPTR,A;将控制字写入控制口

2.2.3步进电机走步控制程序

2.2.3.1程序流程图

图9步进电机走步控制程序流程图

2.2.3.2汇编程序代码

以下为X轴上电机的步进控制算法,Y轴上步进电机算法类似。

XCOTROL:

MOVDPTR,#ADX;将控制字表地址赋给DPTH

MOVA,R2;表首偏移量送A

MOVCA,A+DPTR;读取当前步进电机的控制字

MOVDPTR,#7FFDH;PB口地址送DPTR

MOVXDPTR,A;将步进电机的控制字传送到PB口

CJNEA,#05H,LOOP3;若到表尾,转LOOP3

INCR2;未到表尾,表首偏移量加1

SJMPDELAY1

LOOP3:

MOVR2,#00H;表首偏移量清零

SJMPDELAY1

DELAY1:

MOVR0,#FFH;延时

DJNZDELAY1

RET;返回

2.2.4主程序

2.2.4.1主程序流程图

图10主程序流程图

2.2.4.2源程序代码

首先分配各变量的地址为,NXY:

4FH,50H;XE:

4DH,4EH;YE:

4BH,4CH;FM:

49H,4AH,高位存高地址,地位存进低地址。

源程序代码见附录二。

2.3运行调试

2.3.1系统安装调试

按照硬件接线图将系统安装好后,装入程序,执行后查看步进电机的走步轨迹。

2.3.2结果验证

若终点坐标(

)为(4,3),插补计算过程如表3所示。

表3直线插补计算过程

步数

偏差判别

坐标进给

偏差计算

终点判别

起点

=0

=7

1

+X

=0-3=-3

=6

2

+Y

=-3+4=1

=5

3

+X

=1-3=-2

=4

4

+Y

=-2+4=2

=3

5

+X

=2-3=-1

=2

6

+Y

=-1+4=3

=1

7

+X

=3-3=0

=0

根据上表,可作出步进电机的走步轨迹如图11所示。

若输入的参数为XE=4,YE=3,系统走步轨迹与下图比较,可判断出设计的正确性。

图11步进电机走步轨迹

3课程设计体会

通过一个多星期的课程设计,我对这门课有了进一步的了解。

学习过程中在老师的耐心指导下,有意识的培养和建立了我的思维能力,使我真正建立数据及信息流的概念,以便在控制应用中,能够使软件和硬件有机地结合。

通过单片机对步进电机的控制系统设计,让我真正的掌握了微型计算机软件和硬件相结合的设计方法。

工业控制是计算机的一个重要应用领域,计算机控制正是为了适应这一领域的需要而发展起来的一门专门技术,它主要研究如何将计算机技术和自动控制理论应用于工业生产过程,并设计出所需要的计算机控制系统。

而当代,随着微型计算机的高度发展。

它的应用在人们的工作和日常生活中越来越普遍了。

工业过程控制是计算机的一个重要应用领域。

现在可以好不夸张的说,没有微型计算机的仪器不能乘为先进的仪器,没有微型计算机的控制系统不能称其为现代控制系统的时代已经到来。

微型计算控制技术正为了适应这一领域的需要而发展起来的一门技术。

绝大多数自动控制都是使用计算机来实现的;微型计算机控制技术的发展,使得以微型计算机为控制器核心的微机测控装置与系统,渗透到了国民经济的各行各业,已经无时无处不在影响每个现代人的生活。

只有态度认真的对待这门学科才能真正掌握其中的精髓,在将来的工作中或许起着至关重要的作用。

参考文献

[1]贺亚茹.汇编语言程序设计.:

科学出版社,2005

[2]卜艳萍、周伟.汇编语言程序设计教程.:

清华大学出版社,2004

[3]温玉杰.Intel汇编语言程序设计(第四版).:

电子工业出版社,2004

[4]郑学坚、周斌.微型计算机原理与应用.:

清华大学出版社,2000

[5]于海生.微型计算机控制技术.:

清华大学出版社,1998

[6]沈美明、温冬婵.IBM-PC汇编语言程序设计.:

清华大学出版社,2002

[7]何立民.单片机应用系统设计.:

北京航空航天大学出版社,2003

附录一芯片资料

图118051单片机引脚图

图12可编程芯片8255A引脚图

附录二源程序

ORG0100H

MOVDPTR,#7FFFH;控制口地址送DPTR

MOVA,#90H;控制字送寄存器A

MOVXDPTR,A;将控制字写入控制口,初始化8255

MOV4EH,?

;XE的低8位存入4EH

MOV4DH,?

;XE的高8位存入4DH

MOV4CH,?

;YE的低8位存入4CH

MOV4BH,?

;YE的高8位存入4BH

MOVA,4EH

ADDA,4CH;XE与YE低8位相加

MOV50H,A;低位之和存入NXY低8位

MOVA,4DH

ADDCA,4BH;XE与YE的高8位带进位相加

MOV4FH,A;和存入NXY高8位

MOV4AH,#00H;将FM置零

MOV49H,#00H

CLRR2;表ADX偏移量清零

CLRR3;表ADY偏移量清零

LOOP1:

MOVA,49H;取偏差的高8位

JBACC.7,YCONTROL;若FM<0,转到YCONTROL

ACALLXCONTROL;否则,调XCONTROL

CLRC;进位寄存器清零

MOVA,4AH

SUBBA,4CH;FM与YE的低8位相减

MOV4AH,A;结果存入FM低8位

MOVA,49H

SUBBA,4BH;FM与YE的高8位相减

MOV49H,A;结果存入FM高8位

LOOP2:

CLRC

MOVA,50H

SUBBA,#01H;NXY低位值减1

MOV50H,A;结果存入NXY的低位

MOVA,4FH

SUBBA,#00H;考虑低位字节借位

MOV4FH,A;减去借位后存入NXY的高位

ORLA,50H;判断NXY是否为零

JNZLOOP1;不为零则转到LOOP1

LJMP8000H

XCOTROL:

MOVDPTR,#ADX;将控制字表地址赋给DPTH

MOVA,R2;表首偏移量送A

MOVCA,A+DPTR;读取当前步进电机的控制字

MOVDPTR,#7FFDH;PB口地址送DPTR

MOVXDPTR,A;将步进电机的控制字传送到PB口

CJNEA,#05H,LOOP3;若到表尾,转LOOP3

INCR2;未到表尾,表首偏移量加1

SJMPDELAY1

LOOP3:

MOVR2,#00H;表首偏移量清零

SJMPDELAY1

DELAY1:

MOVR0,#FFH;延时

DJNZDELAY1

RET;返回

YCOTROL:

MOVDPTR,#ADY;将控制字表地址赋给DPTH

MOVA,R3;ADY表首偏移量送A

MOVCA,A+DPTR;读取当前步进电机的控制字

MOVDPTR,#7FFEH;PC口地址送DPTR

MOVXDPTR,A;将步进电机的控制字传送到PC口

CJNEA,#05H,LOOP4;若到表尾,转LOOP4

INCR3;未到表尾,表首偏移量加1

SJMPDELAY2

LOOP4:

MOVR3,#00H;表首偏移量清零

SJMPDELAY2

DELAY2:

MOVR0,#FFH;延时

DJNZDELAY2

CLRC;进位寄存器清零

MOVA,4AH

ADDA,4EH;FM与XE低8位相加

MOV4AH,A;结果存入FM低位

MOVA,49H

ADDCA,4DH;FM与XE高8位带进位相加

MOV49H,A;结果存入FM高8位

SJMPLOOP2;无条件转到LOOP2

ORG8000H

END;程序结束

ADX:

DB01H;X轴步进电机控制字表

DB03H

DB02H

DB06H

DB04H

DB05H

ADY:

DB01H;Y轴步进电机控制字表

DB03H

DB02H

DB06H

DB04H

DB05H

 

本科生课程设计成绩评定表

姓名

性别

专业、班级

课程设计题目:

课程设计答辩或质疑记录:

问题1、

 

问题2、

 

成绩评定依据:

序号

评定项目

评分成绩

1

选题合理、目的明确(10分)

2

设计方案正确,具有可行性、创新性(20分)

3

设计结果(例如:

硬件成果、软件程序)(25分)

4

态度认真、学习刻苦、遵守纪律(15分)

5

设计报告的规范化、参考文献充分(不少于5篇)(10分)

6

答辩(20分)

总分

最终评定成绩(以优、良、中、及格、不及格评定)

 

指导教师签字:

2008年1月25日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1