机械学院毕业设计完整版.docx

上传人:b****3 文档编号:5102189 上传时间:2023-05-08 格式:DOCX 页数:56 大小:213.72KB
下载 相关 举报
机械学院毕业设计完整版.docx_第1页
第1页 / 共56页
机械学院毕业设计完整版.docx_第2页
第2页 / 共56页
机械学院毕业设计完整版.docx_第3页
第3页 / 共56页
机械学院毕业设计完整版.docx_第4页
第4页 / 共56页
机械学院毕业设计完整版.docx_第5页
第5页 / 共56页
机械学院毕业设计完整版.docx_第6页
第6页 / 共56页
机械学院毕业设计完整版.docx_第7页
第7页 / 共56页
机械学院毕业设计完整版.docx_第8页
第8页 / 共56页
机械学院毕业设计完整版.docx_第9页
第9页 / 共56页
机械学院毕业设计完整版.docx_第10页
第10页 / 共56页
机械学院毕业设计完整版.docx_第11页
第11页 / 共56页
机械学院毕业设计完整版.docx_第12页
第12页 / 共56页
机械学院毕业设计完整版.docx_第13页
第13页 / 共56页
机械学院毕业设计完整版.docx_第14页
第14页 / 共56页
机械学院毕业设计完整版.docx_第15页
第15页 / 共56页
机械学院毕业设计完整版.docx_第16页
第16页 / 共56页
机械学院毕业设计完整版.docx_第17页
第17页 / 共56页
机械学院毕业设计完整版.docx_第18页
第18页 / 共56页
机械学院毕业设计完整版.docx_第19页
第19页 / 共56页
机械学院毕业设计完整版.docx_第20页
第20页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

机械学院毕业设计完整版.docx

《机械学院毕业设计完整版.docx》由会员分享,可在线阅读,更多相关《机械学院毕业设计完整版.docx(56页珍藏版)》请在冰点文库上搜索。

机械学院毕业设计完整版.docx

机械学院毕业设计完整版

基于面向对象程序设计技术的圆弧插补步进控制系统设计

序言

制造业是国民经济和国防建设的基础性产业,先进制造技术是振兴传统制造业的技术支柱和发展趋势,是直接创造社会财富的主要手段,谁先掌握先进制造技术,谁就能够占领市场。

数控技术是先进制造技术的基础技术和共性技术,它的广泛应用使整个制造业发生了根本性的变化。

因此数控技术水平的高低,数控设备拥有量的多少以及数控

技术的普及程度,已经成为一个国家综合实力和工业现代化水平的重要标志。

数控机床集机械制造技术、信息技术、微电子技术和自动化技术等为一体,随着科学技术的发展而不断的发展与创新。

我国的数控技术及产业与发达国家相比仍然有比较大的差距,其原因是多方面的,但最重要的是数控人才的匮乏。

目前,随着国内数控机床用量的剧增,急需培养一大批各种层次的数控人才,特别是应用型高级技术人才及能熟练操作数控设备的技能人才。

本设计即为适应这种形势的需求而做的。

本设计总共分为两章,第一章圆弧插补器的软件设计,概述了圆弧插补的意义、前景、方法、流程,以及C语言的概述,圆弧插补的程序设计;第二章圆弧插补器的硬件设计,对硬件系统构成进行简介,如何选择功率驱动器的,AMPCI-9102插卡的使用以及连接到步进电机上,使得软硬件结合实现数控圆弧插补。

本设计的特点一是符合知识理解的逻辑性,各章内容既相互联系,又相对独立成体系;二是理论联系实际,重点突出;三是强化专业基础知识。

本设计在设计中参阅了大量相关文献,在此向有关作者一并表示谢意!

 

第1章本系统的硬件体系结构

1.1一般步进控制系统结构及工作原理

步进式伺服驱动系统是典型的开环控制系统。

在此系统中,执行元件是步进电机。

它受驱动控制线路的控制,将代表进给脉冲的电平信号直接变换为具有一定方向、大小和速度的机械转角位移,并通过齿轮和丝杠带动工作台移动。

由于该系统没有反馈检测环节,它的精度较差,速度也受到步进电机性能的限制。

但它的结构和控制简单、容易调整,故在速度和精度要求不太高的场合具有一定的使用价值。

1..1.1步进式伺服驱动系统工作原理

步进式伺服驱动系统主要由步进电机驱动控制线路和步进电机两部分组成,如图1-1所示。

驱动控制线路接收来自数控机床控制系统的进给脉冲信号(指令信号),并把此信号转换为控制步进电机各相定子绕组依此通电、断电的信号,使步进电机运转。

步进电机的转子与机床丝杠连在一起,转子带动丝杠转动,丝杠再带动工作台移动。

图1-1步进式伺服系统原理框图

下面从步进式伺服系统如何实现对机床工作台移动的移动量、速度和移动方向进行控制三个方面,对其工作原理进行介绍。

(1)工作台位移量的控制

数控机床控制系统发出的

个进给脉冲,经驱动线路之后,变成控制步进电机定子绕组通电、断电的电平信号变化次数

,使步进电机定子绕组的通电状态变化

次。

由步进电机工作原理可知,定子绕组通电状态的变化次数

决定了步进电机的角位移

即步距角)。

该角位移经丝杠、螺母之后转变为工作台的位移量

(t为螺距)。

即进给脉冲的数量

→定子绕组通电状态变化次数

→步进电机的转角

→工作台位移量

(2)工作台进给速度的控制

机床控制系统发出的进给脉冲的频率

,经驱动控制线路之后,表现为控制步进电机定子绕组通电、断电的电平信号变化频率,也就是定子绕组通电状态变化频率。

而定子绕组通电状态的变化频率

决定了步进电机转子的转速ω。

该转子转速ω经丝杠螺母转换之后,体现为工作台的进给速度v。

即进给脉冲的频率

→定子绕组通电状态的变化频率

→步进电机的转速ω→工作台的进给速度v。

(3)工作台运动方向的控制

当控制系统发出的进给脉冲是正向时,经驱动控制线路,使步进电机的定子各绕组按一定的顺序依次通电、断电;当进给脉冲是负向时,驱动控制线路则使定子各绕组按与进给脉冲是正向时相反的顺序通电、断电。

由步进电机的工作原理可知,通过步进电机定子绕组通电顺序的改变,可以实现对步进电机正转或反转的控制,从而实现对工作台的进给方向的控制。

综上所述,在开环步进式伺服系统中,输入的进给脉冲的数量、频率、方向,经驱动控制线路和步进电机,转换为工作台的位移量、进给速度和进给方向,从而实现对位移的控制。

1.1.2步进电机的驱动控制线路

根据步进式伺服系统的工作原理,步进电机驱动控制线路的功能是,将具有一定频率

、一定数量N和方向的进给脉冲转换成控制步进电机各相定子绕组通断电的电平信号。

电平信号的变化频率、变化次数和通断电顺序与进给指令脉冲的频率、数量和方向对应。

为了能够实现该功能,一个较完整的步进电机的驱动控制线路应包括脉冲混合电路、加减脉冲分配电路、加减速电路、环形分配器和功率放大器(见图1-2),并应能接收和处理各种类型的进给指令控制信号如自动进给信号、手动信号和补偿信号等。

脉冲混合电路、加减脉冲分配电路、加减速电路和环形分配器可用硬件线路来实现,也可用软件来实现。

图1-2驱动控制线路框图

 

1.2本系统的硬件组成

1.2.1AMPCI-9102的说明

1.本系统的控制结构

图1-3本设计的控制结构

控制器:

一般来说,控制器为个人计算机

步进电机控制器:

在本设计中X轴用BL-360,Y轴用BL-240

2.AMPCI-9102的介绍

(1)AMPCI-9102的概述

AMPCI-9102板是PCI总线通用数据采集控制板,该板可直接插入具备PCI插槽的工控机或个人微机,构成模拟量电压信号采集、数字量电压信号采集、监视输入和模拟量电压信号输出、数字量电压信号输出及计数定时系统。

AMPCI-9102板为用户提供了单端16路/双端8路模拟量数据采集输入通道,模拟量输入通道具有程控放大功能,4路12Bit模拟量电压信号输出,16BitTTL数字量输入和16BitTTL数字量输出,配接AMPCD821光隔端子板实现光隔I/O,可直接驱动继电器,6路16位计数定时通道(二片82C54),基准时钟8M,可构成脉冲计数、频率测量、脉冲信号发生器等电路。

对AMPCI-9102板的所有读写操作均为16Bit即D00~D15,当对82C54进行读写时只有D00~D07有效,同样A/D转换数据一次读入的为B00~B11。

(2)性能和技术指标

①性能

•模拟信号输入A/D分辩率12Bit

•16路单端/8路双端模拟信号输入通道

•模拟信号输入具有程控放大

•模拟信号输出D/A分辩率12Bit

•模拟信号输出通道4路

•16BitDI/16BitDO数字量输入/输出

•6路16位计数定时通道

•A/D转换触发工作方式:

软件触发

•A/D转换数据传输方式:

查询方式

②技术指标

•A/D输入电压范围:

±5V(出品状态)、0-10V、±10V

•输入阻抗:

>100MΩ

•A/D转换时间:

8.5uS

•A/D转换精度:

优于±0.1%

•模拟信号输入程控放大倍数:

1/2/4/8(或1/10/100/1000,AMPCI-9102H型)

•输出电压范围:

±5V(出品状态)、0-5V、0-10V

•计数定时部分:

16BIT/6通道

(3)使用

①AMPCI-9102板结构

 

 

JP3JP5

J1

PR1PR2PR3PR4PR5PR6PR7PR8PR9JP4PR11PR12PR13

37P1111

DJP6JP7JP8JP9

型J3

JP2

输11

入JP1

头PLX9052

 

J2

PCI总线插头

图1-4AMPCI-9102板结构

②AMPCI-9102板I/O端口地址分配

由于我的毕业设计只用到了数字输出寄存器,因此在此只介绍数字输出寄存器。

Offset=0CHOffset:

相对地址的偏移量,该写操作的I/O地址

表1-116位数字量输出寄存器(I/O写操作)

D15

D14

D13

D12

D11

D10

D09

D08

D07

D06

D05

D04

D03

D02

D01

D00

A15

A14

A13

A12

A11

A10

A09

A08

A07

A06

A05

A04

A03

A02

A01

A00

A15~A00:

16Bit数字量输出,对应J2的A15~A00

1.2.2驱动器BL-240和BL-360的说明

(1)BL-240型驱动模块特点

1)适用电压范围宽(24-40V)。

2)采用恒流斩波,双极性全桥式驱动。

3)运行特性良好,自动半流锁定,可靠性高。

4)细分数可由拨码开关设定:

1/2,1/16,1/32,1/64,1/5,1/10,1/20,1/40。

5)所有输入信号与功率放大部分光电隔离,散热器外壳与驱动器内部完全电绝缘。

6)适配4A以下两相、四相混合式步进电机。

图1-5接线图外形和安装尺寸

(2)接线图及外型、安装尺寸

(3)使用说明

①驱动器的工作电压:

直流电压24~40V。

②驱动器相电流的大小调节:

通过电位器调节。

顺时针旋转,电流增加;逆时针旋转,电流减小。

③信号输入输出控制:

(参见说明书中5输入信号接口内容)

1)CP+:

脉冲信号输入正端。

2)CP-:

脉冲信号输入负端。

3)U/D+:

电机正、反转控制正端。

4)U/D-:

电机正、反转控制负端。

5)FREE+:

电机脱机控制正端。

6)FREE-:

电机脱机控制负端。

④电机绕组连接:

1)A:

连接电机绕组A相。

2)A-:

连接电机绕组A-相。

3)B:

连接电机绕组B相。

4)B-:

连接电机绕组B-相。

⑤工作电压的连接:

1)VH:

连接直流电源正。

2)GND:

连接直流电源负。

⑥驱动器细分数(步距角)的设定:

通过调整拨码开关三位的ON、OFF位置设定驱动器的细分数,以改变步进电机的步距角。

(详见7、细分数的设定)

⑦加电后观察电机运行情况。

注:

可参见接线示意图

(4)电机相电流设定

电机相电流是用驱动器上的电位器来设定,使驱动器输出电流与电机相电流相一致。

驱动器额定工作最大电流为4A。

(5)输入信号接口

输入信号共有三路,它们是:

①步进脉冲信号CP+,CP-;

②方向电平信号U/D+,U/D-;

③脱机信号FREE+,FREE-。

它们在驱动器内部的接口电路相同(见输入信号接口电路图),相互独立。

该输入信号接口的特点是:

用户可根据需要采用共阳极接法或共阴极接法。

1)共阳极接法:

分别将CP+,U/D+,FREE+连接到控制系统的电源上,如果此电源是+5V则可直接接入,如果此电源大于+5V,则须外部另加限流电阻R,保证给驱动器内部光藕提供8—15mA的驱动电流。

输入信号通过CP-加入。

此时,U/D-,FREE-在低电平时起作用。

2)共阴极接法:

分别将CP-,U/D-,FREE-连接到控制系统的地端(SGND,与电源地隔离),+5V的输入信号通过CP+加入。

此时,U/D+,FREE+在高电平时起作用。

限流电阻R的解释与共阳极接法相同。

(6)信号接口电路图

图1-6输入信号接口电路

(7)细分数设定

细分数是用驱动器上的拨盘开关设定的,只须根据细分设定表上的提示设定即可。

请您在系统频率允许的情况下尽量选用高细分。

细分后步进电机步距角按下列方法计算:

步距角=电机固有步距角/细分数

例如:

一台1.8°/40=0.045°。

(8)电机接线

端子A和A-为电机一相绕组,B和B-为电机另一相绕组。

BL-360与BL-240类似,不同之处为的BL-360为共阳极接法,而BL-240为共阴极接法。

1.2.3本系统的硬件接线

(1).接线约定

表1-2插卡端口定义

针式D型37输出插座序号

J2序号

定义

定义

J2序号

针式D型37输出插座序号

未连接

40

NC

NC

39

未连接

未连接

38

NC

NC

37

19

37

36

GND

GND

35

18

36

34

+5V

+5V

33

17

35

32

DI7

DI6

31

16

34

30

DI5

DI4

29

15

33

28

DI3

DI2

27

14

32

26

DI1

DI0

25

13

31

24

DI8

DI9

23

12

30

22

DI10

DI11

21

11

29

20

DI12

DI13

19

10

28

18

DI14

DI15

17

9

27

16

DO7

DO6

15

8

26

14

DO5

DO4

13

7

25

12

DO3

DO2

11

6

24

10

DO1

DO0

9

5

23

8

DO8

DO9

7

4

22

6

DO10

DO11

5

3

21

4

DO12

DO13

3

2

20

2

DO14

DO15

1

1

 

(2系统硬件接线图

 

X轴步进电机控制器BL-360

(共阳极接法)

+5V

17/36

+5V

D0

5

CW

D1

24

CCW

D15

1

RESET

A+

16位

(0CH)

A-

电机

B+

B-

C+

C-

 

Y轴步进电机控制器BL-240

(共阴极接法)

 

VH

GND

DC24V~40V

A+

A-

电机

B+

B-

图1-7系统硬件接线图

FREE-

U/D-

GND

18/37

CP-

CP+

D2

6

U/D+

D3

25

FREE+

D14

20

 

(3)驱动脉冲信号时间

驱动脉冲信号时间

Y轴

程序定时

程序

运行时间

有效电平

持续时间

程序定时

程序

运行时间

有效电平

持续时间

X轴

 

图1-8驱动脉冲信号时间图

1.3步进电动机驱动脉冲的生成

1.3.1AMPCI-9102应用函数介绍

(1)BOOLPLX9052_Open(PLX9052_HANDLE*phPLX9052,unsignedlongVendorID,unsignedlongDeviceID,unsignedlongnCardNum,unsignedlongOptions)

功能:

获得对PLX9052进行读写的操作句柄(*phPLX9052)。

在进行读写前,必须首先调用此函数。

参数:

VendorID——生产商ID,应调用宏PLX9052_DEFAULT_VENDOR_ID;

DeviceID——设备ID,应调用宏PLX9052_DEFAULT_DEVICE_ID;

nCardNum——当同时使用多块PLX9052卡时,用以指示卡号。

当仅使用一块时,应为0;当使用二块卡时,应为0、1;其余类推。

计算机内所插入PLX9052卡的数量,可由函数PLX9052_CountCards()获得。

Options——获得操作句柄方式选择,应为0;

返回值:

如果能够获得操作句柄,返回TRUE,并得到操作句柄指针phPLX9052;如果不能获得操作句柄,返回FALSE。

(2)voidPLX9052_WriteWord(PLX9052_HANDLEhPLX9052,PLX9052_ADDRaddrSpace,unsignedlongOffset,unsignedshortdata)

功能:

向PLX9052的指定端口写入字。

参数:

hPLX9052——通过调用PLX9052_Open()函数获得的操作句柄;

addrSpace——地址空间。

由于PLX9050采取I/O映射方式,此处应调用宏PLX9052_AD_BAR3。

Offset——相对基址的偏移量。

如读端口1A,此处也应为1A。

data——需向指定端口写入的字

返回值:

无返回值

1.3.2AMPCI-9102应用函数调用前的准备

要正确调用函数,必须做好以下准备工作:

(1)正确安装PLX9052的驱动程序。

若已进行过安装,此处不需要再次进行。

(2)正确启动PLX9052的驱动程序。

若已进行过安装,此处不需要再次进行。

(3)找到inc文件夹和lib文件,并将该两文件夹及其内的所有文件复制到由VisualC++创建的文件夹内(也就是进行VisualC++编程时生成的文件夹)。

(4)在源程序中包含头文件ampci.h。

其格式为:

#include“include\ampci.h”

(5)连接时,在“工程”菜单中选择“设置”。

在弹出的对话框中,选择“Link”标签,在ProjectOptions框中输入:

/DEFAULTLIB:

lib\ampci.lib。

注意:

在输入时不要输入空格。

然后调用相应函数,进行编译即可。

PLX9052_WriteWord(hCard,PLX9052_DEFAULT_AD_BAR,0x0c,Mode);

PLX9052_Close(hCard);

}

}

1.3.3本系统脉冲发生程序

CP+

U/D+

CW

CCW

根据前述硬件接线图可知,本系统接口信号约定如下:

 

AMPCI-9102输出寄存器

D3

D2

D1

D0

图1-9AMPCI-9102输出寄存器接线示意图

其中D0、D1分别与BL-360的驱动脉冲输入端CW和方向控制端CCW相连,控制X轴;D2、D3分别与BL-240的驱动脉冲输入端CP+和方向控制端U/D+相连,控制Y轴。

由于各输出信号由同一个输出寄存器输出,为防止各输出信号产生冲突,本程序放置一个全局变量Mode用于保存输出寄存器的状态,并使用位运算产生相应的输出信号。

#include

#include

#defineX_FORWARD1

#defineY_FORWARD1

unsignedshortintMode;//输出寄存器数据

//产生驱动脉冲

//

(1)Axis:

驱动脉冲所作用的轴。

//Axis=0;X轴

//Axis=1;Y轴

//

(2)Forward:

正向驱动标志。

//Forward=TRUE:

正向驱动

//Forward=FALSE:

负向驱动

voidGeneratePulse(intAxis,BOOLForward)

{

HANDLEhCard;

inti;

if(!

PLX9052_Open(&hCard,PLX9052_DEFAULT_VENDOR_ID,PLX9052_DEFAULT_DEVICE_ID,0,0))

{

//MessageBox(NULL,TEXT("板卡错误!

"),TEXT("警告!

"),0);

}

else//操作句柄获取成功

{

if(Axis==0)//X轴

{

//产生X轴方向控制信号。

//X轴方向控制信号从DO1位发出。

//情况

(1)如果高电平为正方向;低电平为负方向,则有:

//X轴正方向:

XXXXXXXXXXXXXX1X;

//X轴负方向:

XXXXXXXXXXXXXX0X

//情况

(2)如果低电平为正方向;高电平为负方向,则有:

//X轴正方向:

XXXXXXXXXXXXXX0X;

//X轴负方向:

XXXXXXXXXXXXXX1X

//

#if(X_FORWARD>0)

//情况

(1)

if(Forward)//正方向

Mode=Mode|0x0002;//DO1位置1,产生高电平

else//负方向

Mode=Mode&0xfffd;//DO1位清0,产生低电平

#else

//情况

(2)

if(Forward)//正方向

Mode=Mode&0xfffd;//DO1位清0,产生低电平

else//负方向

Mode=Mode|0x0002;//DO1位置1,产生高电平

#endif

PLX9052_WriteWord(hCard,PLX9052_DEFAULT_AD_BAR,0x0c,Mode);

//方向控制信号相对于驱动脉冲信号的提前量

for(i=0;i<10;i++);

//产生X轴驱动脉冲信号。

//

(1)X轴驱动器采用宝来公司BL-360型,驱动脉冲信号下降沿有效。

//

(2)X轴驱动脉冲信号从DO0位发出。

Mode=Mode&0xfffe;//DO0位清0,产生下降沿

PLX9052_WriteWord(hCard,PLX9052_DEFAULT_AD_BAR,0x0c,Mode);

for(i=0;i<10;i++);//低电平持续一段时间

Mode=Mode|0x0001;//DO0位置1,变回高电平

PLX9052_WriteWord(hCard,PLX9052_DEFAULT_AD_BAR,0x0c,Mode);

}

else//Y轴

{

//产生Y轴方向控制信号。

//Y轴方向控制信号从DO3位发出。

//情况

(1)如果高电平为正方向;低电平为负方向,则有:

//Y轴正方向:

XXXXXXXXXXXX1XXX;

//Y轴负方向:

XXXXXXXXXXXX0XXX

//情况

(2)如果低电平为正方向;高电平为负方向,则有:

//Y轴正方向:

XXXXXXXXXXXX0XXX;

//Y轴负方向:

XXXXXXXXXXXX1XXX

//

#if(Y_FORWARD>0)

//情况

(1)

if(Forward)//正方向

Mode=Mode|0x0008;//DO3位置1,产生高电平

else//负方向

Mode=Mode&0xfff7;//DO3位清0,产生低电平

#else

//情况

(2)

if(Forward)//正方向

Mode=Mode&0xfff7;//DO3位清0,产生低电平

else//负方向

Mode=Mode|0x0008;//DO3位置1,产生高电平

#endif

PLX

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2