欢迎来到天天文库
浏览记录
ID:24771202
大小:50.00 KB
页数:4页
时间:2018-11-15
《cnc系统巨量nc程序解释实现的方法论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、CNC系统巨量NC程序解释实现的方法论文.freelOfCurPage;∥当前的逻辑页intPagenumOfHandle;∥句柄所拥有的逻辑页数unsignedintHandle;∥当前程序句柄}在具体的解释器实现中要考虑到程序实际指针和程序逻辑指针处于页首和页末的情况。当程序实际指针和程序逻辑指针在页首时,程序逻辑指针的下个位置可能在前一逻辑页末尾,程序实际指针可能要退到物理页的末尾。而当程序实际指针和程序逻辑指针在页末时,程序逻辑指针的下个位置可能在后一逻辑页首,程序实际指针可能从物理页的页尾移到物理页的页首。针对这2种情况进行处理,设计了2个处理函数:st
2、ructPageProgPtrTreatOfFrameEnd(structPageProgPtr);structPageProgPtrTreatOfFrameStart(structPageProgPtr);通过这种处理保证程序实际指针在物理页中和程序逻辑指针在扩展内存的逻辑页中的准确性。由于在程序解释时程序实际指针只在物理页中来回变化,而程序逻辑指针在扩展内存的逻辑页中移动,在解释器的设计中必须把程序实际指针和程序逻辑指针结合在一起考虑。解释器通过解释高端内存中物理页的内容来完成扩展内存的NC程序的解释任务。解释器解释NC程序所得到的数据送到一个环形缓冲队列中,
3、当填满缓冲队列后,解释任务就停止。当插补器从解释器中取走数据,使缓形队列中有空单元时,通过任务调度把解释器再次激活,这样解释器和插补器就能协调工作。3关于巨量NC程序和类似高级语言BASIC编写的NC程序兼容处理在一般NC代码解释器中,只能进行ISO代码的NC程序解释,而对于带有高级语言特性的一些NC语句如DO—所生成的巨量NC程序,基本上每行都有N标号,更容易出现这样的问题。由于使用扩展内存不仅要对一般的手工编制的较短NC程序进行处理,而且要对巨量NC程序进行处理,采用直接寻址,每次遇到子程序和跳转程序指令时,通过比较标号,找到目的地址执行,这样既节省系统的基本
4、内存,又提高系统的处理速度和C运行的稳定性。通过2个函数来解决这个问题:structPageProgPtrFind_Nlabel(structPageProgPtr);structPageProgPtrFind_Ocode(structPageProgPtr);4扩展内存的资源竞争问题为了节约基本内存,要编辑的程序也装入扩展内存,这也通过一个句柄进行操作。在程序的编辑时,所要编辑的程序从扩展内存的逻辑页轮流装入高端内存的物理页,所有程序的编辑都在高端内存进行,从而保证在程序编辑过程不占用基本内存。由于所编辑程序和运行的程序都是通过高端内存对扩展内存进行操作,存在资
5、源竞争的问题。在系统中,扩展内存都是通过句柄进行操作的,通过EMM386.EXE文件对扩展内存的逻辑页进行管理,只要能申请到相应扩展内存的句柄,就能保证扩展内存的逻辑页使用不发生冲突。在高端内存中,总共有每页16k的4页物理页,把这些物理页进行分配,程序解释运行使用第1页,而程序编辑使用第2页,由于EMM386.EXE程序本身能保证67H中断的重入问题,通过这样内存的分配方式,解决了扩展内存资源竞争问题3。5结束语笔者利用系统的扩展内存实现了在C系统中解释巨量NC程序。基于系统扩展内存所做的NC解释器和编辑器使运行程序和编辑程序的大小与基本内存无关,而只与扩展内存
6、有关。计算机可配置的扩展内存越来越大,现已能达到256M,而现阶段8M的扩展内存已能满足一般巨量NC程序运行和编辑的要求,这给更复杂零件加工程序一次装载解释运行提供更大的方便。同时,在多通道的C系统软件中,由于每增加一个通道大约要增加到最大20k到30k的内存开销,解释器和编辑器利用扩展内存也能让多通道C系统增加更多的通道数,控制更多的独立过程,这对FMS、CIMS的实现也有一定的意义。采用该方法所设计的NC代码解释器,已运用到华中Ⅰ型数控系统上。
此文档下载收益归作者所有