基于单片机的数控机床控制系统设计.docx
《基于单片机的数控机床控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数控机床控制系统设计.docx(30页珍藏版)》请在冰点文库上搜索。
基于单片机的数控机床控制系统设计
摘要
本课题研究的数控机床控制系统主要分为上、下位机。
上位机为一块PC104,主要作用是运行整个数控软件,通过控制面板输入控制命令,通过输出端口来控制各个电机的运行,并将机床的加工信息在LCD屏上显示出来。
下位机就是本课题所要设计的控制面板,它是一个单片机系统,将控制面板的输入信息传到上位机,并从上位机接收信息用LED来显示机床的运行状态。
该系统的总体功能够通过通讯协议完成单片机和上位机之间的通讯,该协议说明用户按了哪些键。
开机后,上位机(PC104)给单片机发送信息,单片机接收到信息后在控制面板上用LED显示机床的状态,用户操作时按控制面板上的按键或转动波动开关,单片机向上位机发送信息告诉上位机用户对机床的操作和对加工过程的一些配置。
上位机根据下位机传送的信息来控制机床的运行,同时也向单片机传送必要的信息。
本控制面板(下位机)分为上下两部分。
上面一块称为MDI面板,下面称为机床操作面板。
MDI面板上都是按键,其功能为:
数控软件的软按键(虚拟button,由两个左右方向键和F1,F2,F3,F4,F5等按键组成);文字代码编辑、插入、删除、查看翻页以及几个功能键(诊断,图形,系统设定等)。
下面机床操作面板除了按键外,还有几个波段开关,起停开关以及一些LED灯。
按键的功能是实现机床的操作命令,如打开照明灯,主轴的正转、反转,刀具回零点等。
波段开关的功能分别为设置主轴倍率、进给倍率、快速倍率、方式选择。
快停开关为数控机床启动、停止、急停,LED灯显示数控机床状态。
本系统设计包括:
1、单片机与上位机通信协议的设计。
2、多按键的设计。
3、单片机的抗干扰措施及MAX1232的使用的设计。
4、用MAX1232芯片和上位机进行串口通信的设计。
5、单片机I/O口的扩展的设计。
6、变量的定义设计。
7、灯亮程序的设计。
8、接收程序的设计。
关键词:
单片机控制系统按键
Abstract
CNCmachinetoolcontrolsystemofthisresearchprojectismainlydividedintoupperandlowermachine.ThehostcomputertothePC104amainroleistoruntheCNCsoftware,controlcommandsviathecontrolpanelinputandoutputportstocontroltheoperationofeachmotor,andthemachininginformationtobedisplayedontheLCDscreen.Lowermachineissubjecttodesigncontrolpanel,whichisasingle-chipsystem,thecontrolpaneltoinputinformationtothehostcomputer,andreceiveinformationfromthehostcomputerwithLEDdisplaymachinerunningstatus.
Theoverallfunctionofthesystemenoughtocompletethecommunicationbetweenthemicrocontrollerandthehostcomputerthroughthecommunicationprotocoloftheagreementshowstheuserwhichkeywaspressed.Bootthehostmachine(PC104)tosendinformationtothemicrocontroller,MCUreceivestheinformationonthecontrolpanelwithLEDdisplaymachinestatus,useractionsonthecontrolpanelbuttonorturnthefluctuationsswitch,themicrocontrollerupthemachinetosendinformationtotellthehostcomputerusersonthemachinetooloperationsandprocessingconfiguration.Thehostcomputermodemtosendtheinformationtocontroltheoperationofthemachine,butalsothenecessaryinformationtosendtothemicrocontroller.
Thecontrolpanel(machine)dividedintotwoparts.AboveoneknownastheMDIpanel,hereafterreferredtoasamachineoperatorpanel.ArekeysontheMDIpanelanditsfunctionsare:
CNCsoftwaresoftbuttons(thebuttonvirtual,composedbythetwoleftandrightarrowkeysandF1,F2,andF3,theF4,F5,andotherkey);textcodeeditor,insert,delete,viewpageaswellasseveralfunctionkeys(diagnostic,graphics,systemsettings,etc.).Thefollowingmachineoperatorpanelbuttonoutside,thereareseveralbandswitchwiththeswitchandsomeLEDlights.Thebutton'sfunctionisamachinetooloperationcommand,suchasturnonthelights,thespindleforwardandreverse,thetoolbackto0:
00andsoon.Bandswitchfunctiontosetthespindleoverrideandfeedoverride,rapidoverrideoptions.Quickstopswitchtostart,stop,emergencystopandLEDlightsdisplaytheCNCmachinetoolsforCNCmachinetools.Thesystemdesignincludes:
1,MCUandhostcomputercommunicationprotocoldesign.
2,amulti-buttondesign.
3,anti-jammingmeasuresmicrocontrollerandMAX1232usedesign.
4,theMAX1232chipandthehostcomputerserialcommunicationdesign.
5,MCUI/Oportexpansiondesign.
6,thevariabledefinitionofdesign.
7,theprogramdesignofthelights.
8,thedesignofthereceivingprogram.
Keyword:
lowermachine,Thecontrolpanel(machine),multi-button
引言
由于单片机构成的系统具有可靠性高、使用简单方便、修改灵活等优点,在工业应用上越来越普遍,逐渐取代了以往采用的以大量模拟电路、数字电路和分离原件来制作控制系统的方法。
本例首先对控制面板的功能和操作方法做了详细的介绍,对单片机和上位机的通信协议做了详细的分析。
在硬件设计上,为了保证系统的温定型,用了MAX1232芯片作为整个单片机系统的看门狗。
因为本系统要用到大量的I/O端口,所以用了一些8155芯片来扩展I/O,同上位机通信则用到了MAX232芯片。
整个系统分为几个模块来编写,易于整理思路,使程序富有条理。
开机后,上位机(PC104)给单片机发送信息,单片机接收到信息后在控制面板上依靠LED显示机床的状态,用户操作时按控制面板上的按键以及转动波动开关,单片机向上位机发送信息告诉上位机用户对机床的操作和对加工过程的一些配置。
上位机根据下位机传送的信息来控制机床的运行,与此同时也向单片机传送必要的信息。
目前大量的嵌入式产品,如激光打印机,POS机等等,依赖键盘或者小键盘接口用于用户的输入,并在LCD或者LED上显示一定的信息。
虽然目前有非常多的芯片可以用来实现键盘扫描,但是用软件实现键盘扫描的方法有助于缩减系统的开发成本,并且修改灵活,非常方便。
本系统的键盘扫描方法和代码也可以用在其他类似的系统上,仅仅需要根据项目的不同特点、需要、做出少量修改即可。
1.
简介
单片机又可以称为单片的微型控制器,它不是为了完成某一个特定逻辑功能的芯片,而是把一个PC系统集成到一个芯片上。
笼统的来讲:
就是一台计算机就由一个芯片组成。
它的质量轻、价格便宜、体积小、为开发、学习和应用提供了非常便利的条件。
而且,学习使用单片机是为了了解PC结构与原理的最佳选择。
单片机内部也使用和PC功能相类似的模块,比如中央处理器,内存,并行总线,还有和硬盘作用相似的存储器件,不同的是他的这些元件性能都比我们的家用电脑弱很多,不过价钱也是相对很低的,一般不会超过5元。
用来做一些控制电器一类不是非常复杂的工作就足够了。
我们现在用的全自动滚筒洗农机、排烟罩、VCD等家电里面都可以看到它的身影。
它主要的功能是作为控制结构的核心部件。
他是一种存线式实时控制PC,在线式为现场控制,需要的是有很强的抗干扰的能力,较低的价格成本,这也是和离线式PC的(比如家用PC)主要区别。
单片机是靠程序的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的一些功能,这是别的器件需要费很多人力才能做到的,有些则是花人力也很难做到的。
一个不是很复杂的功能要是用美同50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!
只因为单片机的通过你编写的程序可以实现高科能,高效率,以及高可靠性!
CPU(中央处理单元)是数字计算机的重要组成部分,其目的是对从内存中接收的指令进行译码,同时对存储于内部寄存器、存储器或输入输出接口单元的数据惊醒传输、算术运算、逻辑运算以及控制运算。
在外部,CPU位转换指令数据和控制信息提供一个或多个总线并从组件连接到它。
一个微控制器出现在普通电脑的键盘和检测器中,但是这些组件也被屏蔽。
在这种微控制器中,与我们所讨论的CPU可能有所不同。
字长也许更短,编制数量少,指令集有限。
相对而言,性能差,但对完成任务来说足够了。
最重要的是它的微控制器的成本很低,符合成本效应。
因为单片机对成本是非常敏感的,所以现在占主导地位的软件还是最低级汇编语言,他是除了2进制机器编码以上最为低级的语言了,但是这么低级为什么还要使用它呢?
非常多的高级语言已达到了可视化编程的水平,那为什么不用呢?
原因非常简单,就是单片机没有家用PC那样的中央处理器,也没有像HD那样的大量存储设备。
一个可以看到的高级语言编写的小程序里即使只有一个按键,也会达到几十K的尺寸!
对于我们家用电脑的硬盘来讲这并没有什么,可是对于单片机来说着是绝对不能够接受的。
单片机在硬件资源方面的利用率一定非常高才可以,所以汇编语言虽然有些原始但还是在被大量使用。
同样的道理,如果把巨型PC上的操作系统以及应用软件拿到家用计算机上来运行,家用计算机的也是承受不了的。
可以这么说,二十一世纪跨越了几个“电”的时代,即电气时代、电子时代和现已进入的PC时代。
不过,这种计算机,通常是指个人PC机。
它是由主机、键盘以及显示器等组成。
还有一类PC机,很多人却不是怎么熟悉。
这种PC机就是把智能赋予各种机械的微控制器(亦称单片机)。
顾名思义,这种PC机的最小系统只用一片集成电路,即可进行简单的运算和控制。
由于它的体积很小,一般都被藏在被控的机械“肚子”里。
他在整个的装置中,起着就像人类的头脑的作用,它如果出了问题,所有的装置就瘫痪了。
目前,这种单片机的使用领域已十分广泛,像科能的仪表、实时T控、通讯设备、导航仪器、家电等。
各种产品。
一但使用了单片机,就能起到使产品换代升级的功效,经常在产品的名称前加以形容词一一“智能型”,如智能洗衣机等。
现在有很多工厂的技工或其它业余电子开发爱好者做出来的一些产品,不是电路过于复杂,就是功能过于简单且而且极易被仿制。
究其原因,可能就是卡在产品没有使用的单片机或者别的可编程逻辑器件上。
1.1单片机
51单片机是对目前所有兼容Intel8031系统指令的单片机的系统统称。
该版本单片机的始祖是Intel的8031单片机,之后随着Flashrom技术的发展以及延续,8031单片机取得了很长的进展,成为现在使用最广泛的8位单片机之一,其代表是Atmel公司的At89系列,它广泛的用于工业测控系统中。
目前有非常多的公司都有51系列的兼容类机型推出,在目前以至于今后都会在很长的一段时间内将占有大量的市场。
51系列单片机不仅是基础入门的一个单片机,还是在应用中最为广泛的一种单片机。
需要注意的是52系列的单片机一般都不具备自编程能力。
如图1-1单片机管脚图
图1-1单片机管脚图
1.2单片机与上位机通信协议设计
上位机指示单片机显示机床的状态,以及单片机向上位机传递用户操作机床的信息全都需要设计单片机与上位机(PC104)的通信协议。
本控制面板设计通过RS-232发送和接收写信,协议定义:
发送数据:
(单片机发送,计算机接收),两种方式:
(1)帧引导+命令字+数据个数+N个数据+异或校检。
(2)帧引导+结束命令字+异或校检。
其中,命令字为N、L、M、T。
N表示机床控制面板的按键,L表示LCD的按键,M表示MDI面板的按键,T表示倍率。
N6个数据078为4EH
L1个数据076为4CH
M4个数据077为4DH
T2个倍率数据084为54H
P6个手脉数据080为50H
D6个数据068为44H
实例:
如2、02+FFH+校检和。
数据和地址对应单元:
Data0:
30H以此类推:
Data1:
31H等。
请求数据:
(1)帧引导+命令字+数据地址+数据个数+校检和。
(2)帧引导+命令字+N个数据+校检和。
实例:
如1、05+’W/R’+’40H’+’05H’+校检和。
发送数据为:
05H、52H、34H、30H、30H、35H、31H、42H。
说明:
校检和是W、04H与05H的ASC码值的和,且只保留检验和的最后两位,并把它转化为ASC2码值。
在本例中校检和为11BH,去掉最高位则为1BH,那么其ASC2码值为:
31H、42H。
2.多按键处理
控制面板上除了有80多个按键外还有4个拨动开关和30多个发光二级管,即一共100多个开关位。
其中还有双键同时被按的功能定义,也有两间锁定(两键功能不能同时实现)的功能定义,同时还要处理错误按键信息。
方法如下:
单片机通过外接多片8155芯片来扩展I/O口,按键则接在8155的I/O口上。
接线的方法是接成矩形键盘,其中8155的PA口作为举行的行线,PB和PC口作为举行的列线。
通过“扫描”的方法来查看键盘有没有按键或哪个按键被按以及有没有多个按键被按或错误按键被按,不同的按键连接方式如图2-1:
PB0
PB1
PB2
PB3
PB4
PB5
PB6
PB7
PC0
PC1
PC2
PC3
PA0
0
8
Y
复位
输入
上页
>
手动冷却
主轴正传
主轴定位
-X
PA1
1
9
Z
帮助
位置
下页
>
刀库旋转
主轴停止
选择跳过
-Y
PA2
2
-
M
切换
程序
前
F1
刀具夹紧
主轴反转
进给保持
-Z
PA3
3
。
S
插入
参数
后
F2
工作照明
机械锁住
快速
-4
PA4
4
Q
T
替换
系统
左
F3
自动断电
单断运行
+X
PA5
5
N
F
删除
诊断
右
F4
超程释放
空运行
+Y
PA6
6
G
D
EOB
图形
F5
1/2
程序启动
+Z
PA7
7
X
H
取消
排屑
+4
图2-1按键连接方式图
方法如下:
通过扫描键盘的行线可知PA的一个I/O口有按键被按,设为n,n为有按键被按的那根行线的序号。
再通过扫描列线可知列线第几根线有按键被按,设为m,同理m为有按键被按的那根列线的序号。
令A=8m+n-X,X为图表中中间未定义的按键的个数,A为各个按键功能表对应的左程序跳转列表中的序数指针。
列表“>”为0行7列,按照从一列一列从上到下数的方式,其中从0列到PC3列中未定义的按键个数为11个,即X为11。
可得A=45,即“<”按键在按键功能表的对应位置为45.这样就可以用JMP@A+DPTR这样的汇编程序语句使程序调到处理此按键的程序上。
3.原理图的分析与实现
这个控制板是由一块87C52单片机构成的硬件系统,除了单片机本身之外,系统还包含了MAX1232芯片作为单片机系统的看门狗检测系统的运行,保证单片机程序能够正确的被执行,MAX1232芯片作为单片机的TTL-RS232电平的转换器来用来使单片机和上位机串行通信,相互传递信息,74LS245芯片、8155芯片作为单片机的I/O扩展口。
如图3-1系统图
图3-1系统图
3.1单片机的抗干扰措施及MAX1232的使用
在机械加工厂中,数控系统受到周围的干扰非常大。
比如电机启动时电流突然变大对数控系统会产生很大的干扰,由于电机的启动电压是380V,而单片机系统采用的电路电压是5V或3V,非常容易受到强电的影响,因此单片机系统不可避免的在运行过程中会死机或程序跑飞、功能不正常等,所以在电路板设计中要注意抗干扰的问题。
为了解决这个问题,在本系统中加了一个看门狗,选用的芯片是MAX1232,下面讲述看门狗技术及用MAX1232芯片作看门狗的连接、运用方法以及原理。
看门狗电路一般都被描述为一块在有一定规律的时间间隔内进行更新的硬件,该更辛必须是由微型控制器或者是使微型控制器来重新启动的电路来完成。
看门狗电路分为内部以及外部两种,在外的看门狗电路是非常好的,因为它不是依赖微型控制器的,如果微型控制器发生故障就会需要这个看门狗更新,所以本电路将给出RESET信号使微型控制器再次启动。
看门狗通常是由一个硬件定时器构成,若没有来自微控制器的更新或报告信息,该定时器就会溢出,看门狗就给微控制器复位信号使其复位。
MAX1232是MAXIM公司生产的微处理器监视器,它不光提供了看门的功能,同时还能检测供电电源的变化,并提供了高电平、低电平两种上电复位方式,用户能够自行设置它的超时时间、设定电源电压波动的允许范围。
用MXA1232芯片作为单片机系统以及其他电子设备的看门狗,不需要其他的电子元器件配合,可以直接和微控制器相连,使用非常简单,性能可靠,被大量应用在一些单片机系统上。
它有两种封装方式,如图3-2所示,给出了MAX1232的各引脚名称和功能。
如图3-3单片机功能图
图3-2引脚图
图3-3单片机功能图
MAX1232在以下几种情况下发送复位信号:
(1)电源电压下降到设定的复位电压处,即检测到了下降值超过所设置的5%或10%的允许波动电压(4.62V或4.37V)。
(2)PB/RST引脚电压被拉低。
(3)ST引脚没有在设定的超时时间内接收到喂狗信号。
(4)电源上电。
本系统利用了看门狗MAX1232的功能和特效来确保系统正常运行,MAX1232与单片机的连接方式如图3-4所示。
图3-4MAX1232与单片机的连接方式
将MAX1232的RST引脚连接到单片机的RESET脚上,即在系统工作不正常时使单片机高电平复位;TOL接到地,将VCC的最低电压设为4.62V;TD脚和VCC相连,超时时间设置为1.2s,即在单片机程序中要在每个小于1.2s时间对MAX1232的ST引脚赋与高电平。
若单片机程序运行不正常,对MAX1232的ST就不会有赋高电平的动作;超过了超时时间,MAX1232的内部定时器就会溢出,其RST引脚就会给单片机的RESET引脚和8155芯片的RESET引脚一个复位脉冲使得单片机重新开始工作、8155复位。
这样就保证了当单片机系统受到干扰时程序跑飞或系统死机时可以重新复位却不会产生错误的动作。
其他的单片机抗干扰的措施:
(1)尽量在关键元件,如ROM,RAM等芯片旁安装去祸电容。
(2)对于运行环境特别苛刻的,可以考虑给控制板的电源加滤波器。
(3)时钟、总线、片选信号远离I/O线和接插件。
(4)加粗地线,接地线构成闭合环路。
(5)用容错技术,包括硬件容错,软件容错。
3.2用MAX1232芯片和上位机进行串口通信
在单片机系统中,单片机与外来的最常用的通信方式为两种:
(1)并行通信:
数据的各位同时到达。
CPU与存储器、存储器与存储器、主机与打印机之间的通信都是并行通信的方式,在并行通信的方式中,数据有多少位就需要多少传送线,它的优势为传送速度较快。
缺点为占用资源较大,尤其是传送位数很大的数据时更是如此。
因此,并行通信应用越来越少。
(2)串口通信:
数据1位1位并且以特定的顺序来传送。
串行通信仅仅需要1对传送线,所以应用串行通信的办法可以节省很多传送线,尤其是在数据位有些多和传送的距离有些远的时候,这个特点非常重要。
但是不足的是1次只能传送1位,因此运输的速度比并行通信的速度慢,位数越多,速度越慢。
异步的串口通信的接口有好几种,如RS-232,RS-499,RS-422,DS-423,RS-485等等,其中RS-232是由美国电子工业协会(EIA)正式公布的,在异步串行通信中应用最为广泛。
用它进行单向数据传输时,传输速度可达到20Kbids,传输距离可达15米。
RS-232C标准定义了25根引线,对于一般的双向通信,只需使用串行输人RxD,串行输出TxD和地线GND。
本题目系统和上位机的通信的方法是串行RS-232协议,由于51单片机的