标题 | 单片机微数控 |
范文 | 朱卫国 樊留锁 摘 要 单片机作为嵌入式控制单元已得到广泛的应用,它是计算机,但是相比高端的数控系统计算机而言,有些小巫见大巫,尽管如此单片机同样可以拿来做数控系统的计算机,本文就一款常见的单片机应用于数控系统的可能性及实施方案进行了一些探讨和尝试。 关键词 数控 单片机 方案 中图分类号:TH138文献标识码:A 0引言 第四代及以后的数控系统是计算机数控系统,经历多年的发展已非常成功地应用于各个方面,作为数控系统用的计算机在硬件上要求很高的性能,在软件上要求非常复杂的系统程序,是由专业的集团公司生产制造的,产品无一例外地是向着高精尖方面发展,在应用上造价非常昂贵,这就使得在一些特殊场合的应用显得被动和高投入,另外我们不会想着是否可以通过一些常用的控制器和伺服装置自行设计制造一套低成本个性化的数控系统,这似乎有点天方夜谭,而其实如我们真的这样想了,并且去做了,发现这是可以实现的,而且只需要一个60多KB容量的单片机就可以实现。 1高速高性能单片机是单片机微数控得以实现的基础 我们在此应用的是8051档次的8位单片机,因为毕竟要用于开发数控系统,性能太低了是没有实用价值的,配置用户程序空间60KB,RAM是1280Byte, 2KB的EEPROM,单时钟/机器周期(1T)的单片机,工作频率范围最大35MHz,两个全双工异步串行口(UART),可分别有于数据显示和程序下载,有40个引脚36个I/O口,这就是宏晶STC单片机 STC12C5A60S2。实践证明,这样的硬件配置的单片机开发的包括常用FMS指令和常用G指令在内的整个数控系统做出来也不过20K的大小,还有30K多的容量可以用于存放用户程序,最多可支持1200个用户程序段,而某些系列的PLC定位模块仅支持600个程序段的编程,而且编程非常麻烦,在速度方面,用33MHZ的晶振,1微米的分辨率,就可以走出非常满意的速度。 2减小系统程序容量提高程序运行速度的方法 我们选用的硬件最大才有62KB的ROM空间和1280ByteRAM空间,可谓是捉襟见肘,所以在编制程序时必须要精打细算还要兼顾运行速度问题,以下仅仅是就此举几个实例。 删去不必要的功能,数控系统有很多功能,但对于单片机这样一个简单的计算机来说庞大的系统功能是不可能的,有好多也是不必要的,例如半径和长度补偿功能,如果用于机械加工,可以通过自动编程软件编程来实现,如果不是用于机械加工则更不必要了,其它好多功能都是可以舍弃或不得不舍弃的,总的来说只需要具有G00~G04功能,F功能,M功能,S功能,绝对坐标编程功能,循环启动功能,进给保持功能,复位功能,急停功能,进给速度增减功能,主轴转速增减功能,手动或手轮进给功能,回零功能,手动/自动转换功能,三坐标以及主轴转速和进给速度显示功能等等,再结合自动编程软件就可以达到实用的程度。 平方的算法,我们知道平方的运算可以用函数实现也可以用乘法实现,但二者编译后的容量却相差很多,以long型数据为例,用pow函数做的运算要比用乘法做的运算多1808个字节。 对变量的类型进行合理地设置,不同类型的变量所占用的空间是不一样的,在编制系统程序时要合理设置变量的类型,力争使变量占用空间最少,char型的变量够用就不要用int型,int型的变量够用就不要用long型, 浮点数sing够用就不要用double型,当然绝对不能定义的变量的容量过小,不然会出现严重的错误。 共用变量节省RAM空间,不会同时用的两个或更多个变量可以共用同一个变量,例如同一时间段内圆弧插补和直线插补以及快速定位是不会同时运行的,我们就可以定义这样一个变量float idata RorZINC,在圆弧插补时用作圆弧半径,而在G00或者G01插补时用作Z轴增量坐标,这一方法可以节省大量的RAM空间。 Long数据的快速传送,long型数据占用四个字节空间,在进行外部传送时最简单的运算也要进行三次每次八位的移位,但是如果我们知道这四个字节的地址,就可以直接把这四个字节传送出去,省去了传送前的所有运算,这时我们可以这样定义变量: unsigned? Long? data? X? ? ?_at_ 0x40; unsigned? char? data? X1? ? _at_ 0x40;? ? //最高字节 unsigned? char? data? X2? ? _at_ 0x41; unsigned? char? data? X3? ? _at_ 0x42; unsigned? char? data? X4? ? _at_ 0x43;? ? //最低字節 当需要把X变量传送出去时,直接传送X1~X4四个变量即可,在接收侧,反其道而行,就可以直接合成变量X的值。 尺寸数据的单位,在设计插补程序时其分辩率是1微米,但是如果依习惯用毫米做单位,步进量需以0.001计算,实际证明这样运算是会产生误差的,而且输出坐标时,为了不丢失小数位还要再乘以1000,既增大了程序量又拖慢了运行速度,然而如果用微米做单位,就会三全其美。 充分利用子程序功能,子程序可以最大限度地节省程序占用的空间,在程序编写及阶段性完成后要核查一下是不是可以组合出子程序功能。 3 VB语言的应用使得单片机微数控的编程变得容易,并且和大众化数控程序相兼容 为了使系统尽可能地兼容多数数控系统的程序,所以其格式必须要大众化,但是大众化G代码指令程序的格式在普通单片机C语言程序中是不被认可的,只会被认为是一个未被定义的变量,为此可以用VB语言编制一个可视化转换程序,把G代码指令程序转化为单片机C语言兼容的函数格式,例如G代码指令程序G01 X12.300 Y45.600 Z78.900,通过转化后可处理为G01(12.300,45.600,78.900)格式,如此就变成了一个C语言认可的子程序调用从而可以实现直线插补。通过实践证明,这种方法,简便易行,可把自动编程生成的长篇的程序转化为合法格式,直接复制到单片机C语言程序中去,而不用做修改,同样地,F、M、S代码都要做类似的转换。 4系统方案的实施 数据显示方案,结合单片机的数据显示方案有许多种,但在本方案中为了节省CPU必须采用静态显示,为了节省I/O口,必须采用串行输出,综合这两点可以采用74595或74164移位寄存器的串行七段数码管,其优点是仅占用三个I/O口(异步串行通讯的两个I/O口和一个普通I/O口,而74164只需要异步串行通讯的两个I/O口)即可,而且可非常灵活地根据实际需要调整其位数,在此每个坐标需要8位七段数码管,三个坐标需要24位七段数码管,进给速度需要四位数码管进行显示,主轴转速的显示可采用第三个单片机进行实时显示,具体方案不受限制。在数据显示方案上普通的数控系统坐标是非常频繁刷新的,至少说是快于人眼的反应能力的,这其实是不必要的,本方案中受单片机速度的限制,显示方案采用的是一个插补程序段刷新一次(圆弧在过象限处和节点处均刷新)的方案,另外由于数码管显示部分功耗较大,不宜和单片机共用电源。 插补功能的实现,最能体现数控系统不同于一般程控系统的一点就是插补功能,所以这是本方案成功与否的重点所在,根据数控原理内容,插补有多种方法,而最易于编制和实现的就是逐点比较插补方法,有一定的C语言基础就可以编制出插补的系统程序,虽然如常见的数控机床功能一样只有直线和圆弧的插补,这就足够了,本方案中我们可以做出一维、二维、三维直线插补、二维圆弧插补和整圆插补,至于说其它的二次曲线,则可以由宏程序完成,我们知道数控程序是具有宏程序功能的,这使得我们在处理复杂任务时游刃有余,显然宏程序也就是C语言、BASIC语言或由这二者学派生出来的其它语言,本方案中开发程序就是用的C语言,所以它天生具在宏程序功能,用户只需要定义出自己需要的变量,就可以任意地编制宏程序。 多种系统方案,单机微数控的系统程序和用户程序在同一个空间存储,这种结构的系统程序是对用户公開的,不但限制了用户程序的容量,对系统程序的保护以及对知识产权的保护都不利,所以仅适用于开发者个人应用或不需要用户修改程序的方案,为了克服上述缺点,也可以开发双机微数控,这种结构的系统一个单片机用于存储系统程序,另一个单片机专一地用于存储用户程序,如此既扩展了用户程序空间,也保护了系统程序和知识产权,两个单片机间的通讯可以并行也可以串行,并行速度高但占用I/O点数多,串行占用I/O口少,但速度低些,用串行通讯时还可选择用异步串行通讯UART或者是同步串行通讯SPI;定位模块是配套PLC开发的,有些品牌的PLC自身开发有定位模块,但可能存在价格昂贵、编程不方便、容量偏小等缺点,特别是当需要频繁修改用户程序时就会显得效率低下。 5系统的执行机构和机械本体 执行机构性能从低到高可选的方案有:开环步进电机加细分驱动器、闭环步进电机加专用细分驱动器和交流伺服电机加交流伺服驱动器方案,至于具体用哪个看用户的需要,交流伺服系统性能要优于步进伺服系统,但造价高。 主轴控制系统可选用通用变频器加异步电动机方案或者直流无刷电动机加驱动器方案,在速度控制上前者可以实现开环控制,直接由单片机提供给变频器模拟或数字的转速指令即可,后者要对速度进行精确控制必须采用闭环控制,由于主数控系统单片机I/O口及速度的原因,需要再加一个单片机进行闭环控制。 机械机械本体性能从低到高可选的方案有: 同步带导轨系统、普通矩形丝杠导轨和滚珠丝杠导轨系统,具体的要看造价的高低和对精度以及速度的需要。 6单片机微数控的意义和评价 单片机微数控使数控的应用变得廉价和普及,数控系统由专门的公司开发制造,一般来说功能强大价格不菲,对于我们个性化的需要很不合适,当我们不需要强大的功能、很高的精度时,就要多付出成本,而单片机微数控则可以充分地实现个性化,进行量身打造,需要什么功能就做什么样的功能,避免多余功能增加成本。 单片机微数控可以应用于许多方面,如木工机床、数控车床和铣床、雕刻机、普通机床的数控化改造、需要精确定位和复杂运行轨迹的生产线,如码垛机器人、三维焊接机器人、精巧的食品加工机械等等,特别适用于不需要经常改变用户程序的场合。 不可否认单片机微数控有其固有的缺点,功能不够多、稳定性有待进一步开发、只能存储一套用户程序、必须结合PC机才能应用,用户必须有一定的单片机和C语言的基础等等,尽管如此单片机微数控仍不失为一个不错的方案。 参考文献 [1] 王静霞.单片机基础与应用[M].北京:高等教育出版社,2016. [2] 赵晓安.MCS-51单片机原理及应用[M].天津:天津大学出版社,2001. [3] 夏继强.单片机实验与实践教程[M].北京:北京航空航天大学出版社,2001. [4] 张丽华,马立克等.数控编程与加工技术[M].大连:大连理工大学出版社,2004. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。