基于区位码字典对数控程序进行中文注释
2015-11-02谢剑刚
杨 超 谢剑刚
基于区位码字典对数控程序进行中文注释
杨 超 谢剑刚
当前数控机床系统中,数控程序可读性差,可查找性弱,不利于重复使用;并且由于数控设备存储空间较小,软件功能较弱,无法使用拼音、五笔的普通汉字输入法。为解决这些缺点,特提出一种利用区位码互译字典和区位输入法的中文注释方法,即向数控程序中输入一串区位码字符串,通过转换成对应GB码,找到汉字库中的点阵送给LCD显示,使得在数控程序中加入了中文注释。为避免数控程序在加入中文注释之后,数控机床在加工时产生错误,特借鉴C语言的编程注释和转义字符的方法。在数控编程语句行中,一串区位码注释的开头和结尾加入“*”,用以屏蔽注释,保护加工程序。在模拟运行时,数控系统将区位码字符串翻译并显示为中文,在不影响数控机床加工的前提下,提高了数控程序的可读性和可查找性,便于程序的修改和重复使用。
数控编程是把零件的图形尺寸、工艺过程、工艺参数、机床的运动以及刀具位移等内容,按照数控机床的编程格式和能识别的语言记录在程序单上的全过程。程序编制的方法主要有自动编程和手工编程两类。近年来数控技术发展十分迅速,数控机床的普及越来越高,CAD/CAM集成技术编制数控加工程序为主流。自动编程具有十分显著的优点:编程速度快、易于加工复杂型腔和表面、不易出错。但自动编程的程序代码因为是利用三维软件自动生成的,其可读性差,不能完全了解内部的程序,难于看懂和修改,并且软件价格十分昂贵。手工编程需要花费大量时间且容易出错,但价格便宜,在加工要求不高的一些中小型企业仍然被广泛采用。不管是自动编程还是手工编程,对编制后的复杂、大型的程序,事后要想看懂每段程序的含义是十分困难的。特提出一种在数控程序中加入以“*”开头和结尾的中文注释的方法。“*”的主要作用是屏蔽注释内容,保护加工程序的可执行性,以免数控机床加工时出现错误。
区位码互译字典
目前的数控机床系统中,只有三种字符的输入和显示形式,即英文大写字母、数字和特殊字符(%)。所以想要在数控程序中加入中文注释,需要利用区位输入法。在实现区位输入法之前,需要先准备区位码互译字典。该字典为中文与区位码互译字典,即既可以将汉字翻译成区位码,又可以将区位码翻译成汉字。该字典安装在数字设备中,将所有常用汉字和汉字区位码一一对应,存储在数字设备的存储器中,以便数字设备能够直接准确搜索到汉字的区位码。
汉字翻译成区位码
将汉字、字母和数字组成的原字符串输入到字典的编辑框中,利用数字设备的搜索能力,直接将一个一个汉字翻译成其对应的区位码,形成一串数字字符。原字符串中的非汉字字符不被翻译,直接在其前后冠以转义字符“/”,以便保留原字符串中的字母和数字,以免与翻译出来的汉字区位码产生混淆。为便于清楚看到每个汉字对应的区位码,采用逐字分格,数字设备能自动将新字符串按照4位数字为一个汉字区位码进行分格,如图1所示。
图1 区位码互译字典
区位码翻译成汉字
在数控机床中输入,并且数控系统读入区位码字符串之后,数控系统能自动将区位码翻译成对应的汉字。这个过程与上述相反,但原理相同,不再赘述。
图2 数控程序中输入区位码字符串
图3 转换后的数控程序和注释
数控编程
自动编程
在自动编程生成程序文本之后,一旦程序脱离了三维软件,程序语句含义必然十分难懂。因为计算机软件功能强大,可在软件模拟运行的同时,在程序语句行中直接加入中文注释,但为了保护程序的可执行性,要加入以“*”开头和结尾的转义字符。加入了中文注释后的自动编程的程序文本,在导入数控机床之前,被嵌入了区位码互译字典的三维软件能自动将中文注释翻译成区位码字符串,输入到数控机床中。再由数控机床模拟运行,系统自动按照每4位数字进行分割、读取,存入寄存器之中。
手工编程
利用上述区位码互译字典,在准备好的数控程序和区位码字符串后,开始输入。为避免数控系统在分割数字字符串时产生混淆,出现错误,需要在非汉字区位码字符前后加入转义字符“/”,保护并在屏幕中显示出转义字符“/”内的非汉字字符。在进行数控编程时,数控显示界面左侧正常输入数控程序,右侧的同一行中输入以“*”开头的注释部分,连续输入一串字符串,例如图1中的“2212 306328512504/3/448547632246/ABO/”;输入完成之后再以“*”结尾。若一行之中内容较长,需要两行显示,则需要加入换行转义字符“”。在输入换行转义字符“”后,显示界面的输入光标自动与上一行的“*”对齐,用以衔接注释部分的内容,而不影响左侧数控程序的输入。例如输入图2之中的内容。
在输入完成之后,一般需要模拟运行调试程序,在模拟运行的时候,输入的区位码字符串,被读入ROM,数控系统自动将“*”内的区位码串按照每4位数字进行分割、读取。若行中存在换行转义字符“”,系统自动衔接“”前后的内容,并仍然按照每4位数字进行分割、读取,存入寄存器之中。
LED显示
系统读取寄存器之中的汉字区位码后,通过转换成GB码,在经过查找它所对应的汉字库中的点阵,送给LCD显示。“*”用以屏蔽注释,保护程序,直接保留、显示。两个“/”之间的非汉字字符,将直接删除“/”后被显示出来。换行转义字符“”也被删除。图2中的内容被转换之后,显示如图3所示。
结语
本文提出一种区位码互译字典,可以将汉字和区位码互译,而非汉字字符不翻译,直接在其前后分别冠以转义字符“/”,加以保护。
本文利用汉字区位输入法,将以“*”开头和结尾的区位码字符串,经过数控系统的翻译、转换和LED显示,最终在数控界面中显示出中文注释加入了中文注释后的程序,不仅有了中文文件名注释,提高了程序的可查找性;还在关键语句中加入了注释,解决了数控程序含义难懂的问题,提高了程序的可读性,便于修改和重复使用。
10.3969/j.issn.1001-8972.2015.17.019