数控机床单片机控制系统设计.docx
《数控机床单片机控制系统设计.docx》由会员分享,可在线阅读,更多相关《数控机床单片机控制系统设计.docx(23页珍藏版)》请在冰豆网上搜索。
数控机床单片机控制系统设计
简易数控机床控制系统设计
学号:
**********专业:
机械电子工程姓名:
浦汉军2007,9,10南宁
任务:
设计以单片机为控制核心的简易数控机床的数字程序控制器。
要求
1、能用键盘控制工作台沿+X、-X、+Y、-Y向运动,以校正工作台位置。
2、可用于加工直线和圆弧。
3、在运行过程中可人工干预而紧急停车。
4、能实现越界报警。
5、可与PC机通讯。
总体方案设计
一、数控系统硬件电路设计
选用MCS-51系列的8031CPU作为数控系统的中央处理机。
外接一片EPROM用于存放控制程序、固定批量生产的工件加工程序和数据,再选用一片8kb的6264RAM作为存放试制工件或小批量生产的工件加工程序和数据。
由于系统扩展,为使编程地址统一,采用74LS138译码器完成译码法对扩展芯片进行寻址的功能。
还要考虑机床与单片机之间的光电隔离、功率放大电路。
其设计框图如下图所示:
图1.1总体设计框图
工作原理:
单片机系统是机床数控系统的核心,通过键盘输入命令,数控装置送来的一系列连续脉冲通过环形分配器、光电耦合器和功率放大器,按一定的顺序分配给步进电动机各相绕组,使各相绕组按照预先规定的控制方式通电或断电,这样控制步进电动机带动工作台按照指令运动。
1.各单元电路设计
1.1存储器的扩展
选择晶体振荡器的工作频率f为12MHz。
主控器CPU选用8031,根据容量估算,选用一片2764作为程序存储器,一片6264作为数据存储器。
同时,还采用一片74LS373作为地址锁存器。
1.2程序存储器2764
EPROM是用紫外线可擦除的半导体只读存储器,2764芯片引脚的介绍如下。
P0~P7:
数据线,输出。
编程时代码输入。
A0~A7:
地址线,输入。
:
片选信号,低电平有效,输入
:
读信号,低电平有效,输入
:
编程脉冲输入端,输入
Vpp:
编程电压(典型值为12.5V)
Vcc:
电源(+5V)
GND:
接地(0V)
图1.22764引脚图
1.3数据存储器6264
1)6264为24脚双列直插式器件,其引脚图和逻辑符号图如图1.3所示。
A0~A12:
地址输入线。
D0~D7:
双向三态数据线。
:
片选信号输入线,低电平有效。
CE2:
片选信号输入线,高电平有效,可用于掉电保护。
:
读选通信号输入线,低电平有效。
:
写允许信号输入线,低电平有效。
:
工作电源电压(+5V)。
GND:
电源地。
图1.36264引脚图和逻辑符号图
2)6264芯片操作方式选择如表1.1所示。
如表1.1
方式
功能
0
0
1
写
D0~D7上内容写入A0~A10对应单元
0
1
0
读
A0~A10对应单元内容输出到D0~D7
0
X
X
非选
D0~D7呈高阻
1.4键盘显示电路
根据系统要求,通过键盘输入命令来实现对机床工作台的运行控制。
一共需要五个键,四个分别控制工作台向+X、-X、+Y、-Y方向运行,另一个作启动键;通过LED数码管显示工作台的运行位置,行程范围为10米,精确到0.01米,所以用了4个LED数码管采用动态显示。
采用键盘显示器接口8279来实现键盘显示功能。
它主要由以下几部分组成。
1)I/0控制和数据缓冲器;
2)控制和定时寄存器及定时控制部分;
3)扫描计数器;
4)回送缓冲器与键盘去抖控制电路;
5)FIFO(先进先出)寄存器和状态电路;
6)显示器地址寄存器及显示RAM。
下面对引脚名称作简要说明。
DB0~DB7:
双向数据总线,用来传送8279与CPU之间的数据和命令。
CLK:
时钟输入线,用以产生内部定时的时钟脉冲。
RESET:
复位输入线,8279复位后被置为字符显示左端输入,二键闭锁的触点回弹型式,程序时钟前置分频器被置为31,RESET信号为高电平有效。
:
片选输入线,低电平有效,单片机在
为低时可以对8279进行读/写操作。
A0:
缓冲器低位地址,当A0为高电平时,表示数据总线上为命令或状态, 当为低
图1.6键盘、LED数码管显示器电路
电平时,表示数据总线上为命令或状态,当为低电平时,表示数据总线上为数据。
:
读信号输入线,低电平有效,将缓冲器读出,数据送往外部总线。
:
写信号输入线,低电平有效,将缓冲器读出,将数据从外部数据总线写入8279的缓冲器。
SL0~SL3:
扫描线
RL0~RL7:
回送线[17]
工作过程:
每当按下一个键,8279会自动识别键号,产生相应的键编码自动送入先进先出寄存器FIFO中,同时产生中断请求信号IRQ,向CPU请求中断。
当CPU响应中断,执行中断服务程序,并从FIFO中读取编码数据之后,则IRQ信号自动撤消。
如果上一个键的编码数据尚未取走,下一个键盘又被按下,则新的键码进入FIFO中。
由于FOIO中由8个存储单元组成,故最多可依次暂存8个键码。
只
有在读完所有数据时,IRQ信号才会撤消。
在中断程序中,CPU是用片外取数指令(MOVX指令)从FIFO中读取数据。
1.5反应式步进电动机的选择
根据所获得的信息和实际要求,选用步进电机为75BF001型三相六拍反应式步进电机,其工作电压为+24V,相电流为3A,步距角为1.5度。
3.2.5.1环行脉冲分配器
由于本设计选择三相步进电动机75FB001,相对应选择可以控制三相步进电动机的5G8713集成电路芯片。
表1.28713引脚功能
引脚
功能
说明
1
正转脉冲输入端
1、2脚为双时钟输入端
2
反转脉冲输入端
3
脉冲输入端
3、4脚为单时钟输入端
4
转向控制端。
0为反转;1为正转
5
6
工作方式选择:
00为双三拍;
01、10为单三(四)拍;11为六(八)拍
7
三/四相选择。
0为三相;1为四相
8
地
9
复位端,低电平有效
10
11
12
13
输出端。
四相用13、12、11、10脚,
分别代表A、B、C、D;
三相用13、12、11角,
分别代表A、B、C
14
工作方式监视。
0为单三(四)拍;
1为双三(四)拍;脉冲为六(八)拍
15
输入脉冲状态监控,与时钟同步
16
电源
P1.0313A相驱动
P1.14
5V12B相驱动
8051系列8713
511C相驱动
单片机6
7
1.7脉冲分配器与单片机接口
1.6保护电路
采用光电耦合器接口把控制计算机和外部驱动电路完全隔离开来。
具体的光电耦合器如图1.8。
驱动电路
本设计采用的驱动电源是功率开关集成电路TWH8715/2。
这是一个集放大、比较、选通、整形和功率开关于一体的高速功率开关集成电路。
其真值表分别见图1.9及表3.7。
1)TWH8715/2引脚功能[18]
1——控制端(高电平有效,TTL电平,下同)
2——输入端(选通端低电平有效)
3——V-(单电源使用时,接地)
4——输出端
5——V+(工作电压:
+12V—+24V)
由TWH8715/2组成的步进电机驱动电路(只画出了A相,B、C相同)原理见图1.10。
其工作原理为:
无信号时,光敏三极管截止,2角电位等于1角电位,为高电平;输出端4角也为高电平,即电枢绕组无电流通过;有信号时,光敏三极管受光照而导通,将2角电位拉低至零电平,输出端4角也将下降
至输出管饱和电平(约1.6V),这时电枢绕组中有励磁电流流过。
其中V1起续流作用;随工作脉冲频率的升高,电路中呈现的感抗也随之增大,外接限流电阻R3就可以起到降低阻耗的作用。
表1.3TWH8715/2输入输出状态真值
Pint1(st)
Pint2(in)
Pin4(out)
X(任意状态)
H(高电平大于1.6V)
OFF输出极截止
L(低电平小于1.2V)
L(低电平小于1.2V)
OFF输出极截止
H(高电平大于1.6V)
L(低电平小于1.2V)
ON输出极接通
二、数控系统软件设计
2.1加工指令
1)加工指令
每一条加工指令应包括那些内容与采用那种插补计算方法有关。
我们采用逐点比较法,则每一条加工指令应包括下列内容:
(1)线型:
直线或圆弧及它所在的象限、走向。
(2)X轴坐标:
加工直线时,它为直线的X轴终点坐标(Xe),坐标原点取在直线起点。
加工圆弧时,它为圆弧的X轴起点坐标值(Xe),坐标原点取圆弧的圆心。
(3)Y轴坐标值:
加工直线时,它为直线的Y轴终点坐标(Ye),坐标原点取在直线起点。
加工圆弧时,它为圆弧的Y轴起点,坐标原点取圆弧的圆心。
(4)总步数J:
X、Y轴走步数之和。
本系统使用的加工指令由连续的4个字节组成(不包括加工速度等参数),各个字节的内容定义如下(规定FF为加工结束指令,只占一个字节):
(a)第1个字节为线型;
(b)第2字节为X坐标值;
(c)第3字节为Y坐标值;
(d)第4为字节为总步数。
2.2编程示例
若加工如图所示的扇形工件,其加工程序由下列4条指令组成:
(1)L1:
Xe=5Ye=2j=7
(2)NR1:
Xe=5Ye=2j=6
(3)L2:
Xe=5Ye=2j=7
加工结束指令0FFH
机器编码程序如下:
04H05H02H07H
0CH05H02H06H
06H02H05H07H
0FFH
2.3控制程序
根据总电路图的硬件结构和加工指令格式,以直线圆弧插补计算方法来设计控制程序。
整个控制程序由主程序、T0中断程序和外部/INTO中断程序组成。
4.3.1主程序
主程序首先执行系统初始化工作,然后循环扫描键盘,如果键盘上有键入命令则做相应的命令处理,如果键入启动命令,则做好运行前准备工作以及有关指针和标志初始化。
对中断系统初始化,T0向CPU请求中断,使CPU执行部件加工程序,允许外部
中断,在人工干预按下急停键时停止加工部件。
接着循环查询加工结束标志,加工结束后又等待键命令或主机命令。
2.3.2T0中断服务程序
T0中断服务程序的功能是执行加工程序,一条指令执行完再取新的加工指令,直到遇到停机时关中断,置位结束标志。
在加工指令执行过程中,根据线型做直线圆弧的插补计算。
T0中断程序框图如下:
2.3.3
中断程序
中断程序的功能是实现急停、行程开关的功能。
由于只有2个外部中断请求中断接口,而本设计需要多对个外部中断源,所以采用“OC门”经“线或”后,引入芯片本身的外部中断请求输入端,就可以很方便地扩展多个外部中断源。
几个扩展外部中断源中有一个或几个出现高电平,反相器输出为0,引用
低电平触发中断,所以这些中断源都是电平触发方式。
本设计中当工作台越界时,行程开关闭合即满足外部中断源请求条件,则CPU响应中断,转入0003H单元开始执行中断源服务程序。
在中断服务程序中,由软件设定的顺序查询外中断哪一位是高电平,然后进入该中断处理程序。
查询的顺序就是外部扩展中断源的中断优先级顺序。
本设计的
中断源查询程序的流程图如下。
2.3.4步进电动机的位置控制
步进电动机的位置控制需要两个参数。
第一个参数是步进电动机控制的执行机构当前的位置参数,叫绝对位置。
它是有极限的,其极限是执行机构运行位置的距离,超越了这个极限就报警。
第二个参数是从当前位置移动到目标位置的距离,我么可以用折算的方式将这个距离折算成步进电动机的步数。
这个参数是外界通过键盘输入的。
对步进电动机位置控制的一般作法是:
步进电动机每走一步,步数减1,如果没有失步存在,当执行机构到达目标位置时,步数正好减到0。
因此,用步数等于0来判断否移动到目标位,作为步进电动机停止运行的信号绝对位置参数可作为人机对话的显示参数。
它与步进电动机的转向有关,当步进电动机正转时,步进电动机煤走一步,绝对位置加1;当步进电动机反转时,绝对位置随每次步进减1。
三、程序
TYPEEQU30H;线型缓冲单元
MMEQU31H;偏差缓冲单元
XXEQU32H;x坐标缓冲单元
YYEQU33H;y坐标缓冲单元
JJEQU34H;步数缓冲单元
STATXEQU35H;步进电机状态坐标缓冲器
STATYEQU36H
FENDEQU0;结束标志
FNEWEQU1;取新指令标志
FRAMEQU2;执行RAM加工指令标志
ORG0003H
AJMPDO_INT0;转INTO中断
ORG0000H
STRT:
LJMPMAIN;转主程序
LJMPPEX0
ORG0BH
PTF0:
JNBFNEW,LITP;定时器T0中断程序
CLRFNEW
JNBFRAM,EPROM;FRAM=0,转从RPROM中取指令
MOVXA,@DPTR
MOVTYPE,A
INCDPTR
MOVXA,@DPTR
MOVXXX,A
INCDPTR
MOVXA,@DPTR
MOVXYY,A
INCDPTR
MOVXA,@DPTR
MOVXJJ,A
INCDPTR;DPTR指向下条加工指令
SJMPCOMP
EPROM:
CLRA
MOVCA,@A+DPTR;从EPROM中取加工指令
MOVTYPE,A
INCDPTR
CLRA
MOVCA,@A+DPTR
MOVXX,A
INCDPTR
CLRA
MOVCA,@A+DPTR
MOVYY,A
INCDPTR
CLRA
MOVCA,@A+DPTR
MOVJJ,A
INCDPTR
CLRA
COMP:
MOVA,TYPE
CJNEA,#0FFH,PNEW;非停机指令转新指令处理
SETBFEND;停机、关中断
CLREA
RET1
PNEW:
MOVMM,#0;新指令令MM=0
LITP:
MOVA,TYPE
JBACC.3,MM1;ACC.3转圆弧插补
LCALLLLMA;调用直线插补子程序
SJMPMM2;调用圆弧插补子程序
MM1:
LCALLRRMA
MM2:
DJNZJJ,PTROR
SETBFENEW;步长减为0,置取新指令标志
PTROR:
TET1
MAIN:
MOVP1,#0C9H;步进电机状态初始化
MOVSTATX,#0;步进电机状态缓冲器清零
MOVSTSTY,#0
MOVSP,#0EEH;SP、T0初始化
MOVTMOD,#21H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVSCON,50H
MOVTCON,#50H
MOV20H,#0H
MLOP:
LCALLAKSI;调用判是否有键闭合子程序
LCALLKEYI;调用读键子程序
JNZMLP1
LCALLSTEP1;调用+X走步子程序
SJMPMLOP
MLP1:
CJNEA,#1,MLP2
LCALLSTEP3;调用+Y走步子程序
SJMPMLOP
MLP2:
CJNEA,#2,MLP2
LCALLSTEP2;调用-X走步子程序
SJMPMLOP
MLP3:
CJNEA,#3,MLP2
LCALLSTEP4;调用-y走步子程序
SJMPMLOP
MLP4:
CJNEA,#4,MLP5
SJMPBRUN;转启动运行
MLP5:
CJNEA,#5,MLOP
SETBFRAM
SJMPMLOP
LCLLPSSDATR
SJMPMLOP
MLPS1:
JNBTI,MLOP
CLRTI
SJMPMLOP
BRUN:
JBFRAM,BRUN1
MOVDPTR,#1000H;EPROM加工程序首地址DPIR
BRUN2:
SETBFNEW;置位取新指令标志
MOVMM,#0;偏差缓冲器初试清“0”
MOVIE,#83H;允许T0、/INT0中断
MOVIP,#1;允许/INT0为高级中断
JNBFEND,¥;循环等待加工结束
CLRFEND
LJMPMLOP
BRUN1:
MOVDPTR,#800H;外部RAM加工程序首地址DPTR
SJMPBRUN2
PEX0:
CLTEA
SETBFEND
RET1
DO_INT0:
JBP1.4,LOOP1;转向中断服务程序1
JBP1.5,LOOP2;转向中断服务程序2
JBP1.6,LOOP3;转向中断服务程序3
JBP1.7,LOOP4;转向中断服务程序4
INTEND:
POPACC;恢复现场
POPPSW
RET1
LOOP1:
+X越界报警子程序
LOOP2:
+Y越界报警子程序
LOOP3:
-X越界报警子程序
LOOP4:
-Y越界报警子程序
系统总电路图
【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】