140 likes | 343 Views
开放数控系统结构中间件. 摘要. 由 PC 机加运动控制卡组成的数控系统是一种最流行的开放数控系统。对于这样的系统,提出解决 G 代码译码问题的中间件。用该中间件, G 代码程序能够编译到特殊对象代码序列,然后根据该序列通过运动控制器卡能够方便的实现机床控制。作为一个独立的非常全面的组成部分,中间件改进了传统的模式。本文描述了开放数控结构和基于中间件的解决方法,并且详细描述了设计方法和中间件的对象代码形式。 关键词 : 中间件 G 代码 编译器 CNC PIDP. 绪论.
E N D
摘要 • 由PC机加运动控制卡组成的数控系统是一种最流行的开放数控系统。对于这样的系统,提出解决G代码译码问题的中间件。用该中间件,G代码程序能够编译到特殊对象代码序列,然后根据该序列通过运动控制器卡能够方便的实现机床控制。作为一个独立的非常全面的组成部分,中间件改进了传统的模式。本文描述了开放数控结构和基于中间件的解决方法,并且详细描述了设计方法和中间件的对象代码形式。 • 关键词: 中间件 G代码 编译器 CNC PIDP
绪论 • 由PC机和运动控制卡组成的CNC系统是一最流行的开放式CNC系统。研究和开发该系统软件的基本任务是为了根据数控程序实现对机床的控制。另外就是使得结构更加开放,因此为了满足制造商的要求,现今,相当多的数控机床用到数控程序,操作员和技术员使用G代码,所以开放CNC系统必须依照G代码能够实现机床控制。另外,由于G代码译码和编码缺少统一的标准,不同制造商开发的不同CNC系统彼此是不兼容的。对于上述问题,很多新技术和方法已经添加到数控系统的软件开发中。他们中的软件可复用是一个显著特点,是改进软件产量和质量的关键。本文提出了一种针对开放结构的名为PIDP-G代码的新中间件编译器。中间件是一个运行在PC机中可以适用于不同企业控制卡控制生产中的开放数控系统的可复用结构。开发者选择中间件能够缩短软件开发周期。PIDP是协议整型数据包的缩写。
中间件结构 • PIDP-G代码编码器的结构如图1所示。结构分为三层。操作层i.e,运行在PC机中的软件组成上层。关键部分是运行方案软件,它的主要功能包含文件管理的数控操作窗口,菜单,按扭和指针,CNC系统参数设置,状态和信息显示,启动和停止,暂停和运行,增加和减少进给速度。控制层i.e.由包括插补,PLC控制,信号取样,数字量输入和输出的实时控制软件组成底层。控制软件运行在运动控制卡中。中间层包括PIDP-G代码编译器和通讯。通讯的一部分运行在PC机中,一部分运行在运动控制卡中。编译器通过运行在PC机中的运行方案软件得到响应,所以编译器不能用运动控制卡的资源。它简化了运动控制器中的控制软件并且使得运动控制卡有更多的时间运行高精度的控制运算法则.
基于中间件的解决方案 • 设计和开发一种能够作为执行文件或者存储文件保存在PC机硬盘中的独立分量PIDP-G代码的编译器是非常必要的,并且能够被操作层调用。编译器的任务是执行G代码语法检查,相对坐标和绝对坐标的转换,米制和英制的转换,中心坐标的计算,G代码子程序处理和将G代码程序转变为PIDP序列,该程序在CNC加工之前是完全顺序执行的。一个G代码编译一个PIDP。一个G代码程序用于许多G代码用编译许多PIDPs的一个序列保存于PC机硬盘。在CNC加工期间,PC机继续发送PIDP分批到运动控制卡中的循环缓冲区,运动控制卡继续接受来自循环缓冲区的PIDP。通过识别PIDP,运动控制卡不但能够方便的识别当前G代码的意思,而且能够方便的得到PIDP相应的参数并且能够方便的调用相应插补控制功能而实现数控加工。
PIDP-G代码编译器的设计 • PIDP-G编译器的设计包括如下四方面: • A.PIDP格式定义 • PIDP是协议整型数据包的缩写。PIDP格式的定义如下表2所示。 • 第一部分是G代码命令的命令对象代码,用于识别G代码操作命令。该部分的大小仅仅为一个整数单元。运动控制卡控制软件命令对象代码调用相应的插补控制功能,实现数控加工。 • 第二部分是保存在一个整数单元的行序列号,也是G代码源的行号。 • 第三部分是描述参数最后的命令对象代码总单元量的PIDP的长度。 • 第四部分是参数的保存。例如:X.Y.Z坐标。一个参数用一个整数单元。参数部分可以有一个单元,多个单元,或者无单元。 • 一个PIDP能很好的描述一个G代码并且有利于通讯和通过运动控制卡控制软件方便的使用。
B.代码命令的译码 • G代码命令包括G,M,H,P,S和T命令等等。G代码命令的译码原理是:整数译码并且命令对象代码和G代码命令之间的关系必须是一对一。例如:G00~99能够译为1000~1099,同样M00~M99能被译为2000~2099。 • C.PIDP译码 • PIDP译码是为了使编码有序。例如:命令对象代码,行序号,长度,参数和PIDP相应单元的参数等级。为了说明PIDP译码,下面举了两个例子:
例1 • “N0100 G01X10.35Y20.68Z20.00F140”是一个G代码,相应的PIDP如下表所示: • 在表1中,一些参数通过一个恒量而 • 增加。这些参数通过同样的恒量而 • 被划分之后,运动控制卡控制软件 • 应用这些参数。对G代码的PIDP译码 • “2000 M03”如右表所示:
D.PIDP-G代码编码器的软件设计 • PIDP G代码分为五个模块:文件管理,宏处理,编译控制,行编译和PIDP排列。 • 文件管理模块的功能包括:创建目标文件,报表文件,可读文本文件,G代码文件和文件读写操作功能。当没有G代码文件名时,默认文件名为“G-code.txt”,它能通过数控操作方案软件设置。 • 宏处理模块的功能是对G代码文件作宏观扩展,也就是说,该模块对G代码文件进行行扫描并且通过相应的G代码子程序取代调用子程序的行。因此,创建了一个顺序执行新G代码文件。 • 编译控制模块的功能包括:新G代码文件中的扫描,跳过注释行,当找到错误语法行记录语法错误,查找有效行并且调用该行便宜模块。另外,如果错误数量超过10个,将立即停止编译工作并且生成错误报表。 • 行编译模块是为了编译当前有效G代码为PIDP,PIDP保存在缓冲区,并且检查语法错误,系统参数和错误数量。 • PIDP排列模块,当通过行编译模完成一行编译后调用一次该模块。PIDP排列模块主要有两个功能:一个是行有序排列。
用PIDP执行数控系统 • 发送PIDP到运动控制卡 • PC机中的运行方案软件调用PIDP-G代码编译器同时得到PIDP目标文件和报表文件。通过读报表文件,系统就可以知道PIDP编译是否成功。只有编译成功,系统才能够发送PIDP给运动控制卡。在数控系统加工之前,运行方案软件发送一批PIDPs到运动控制卡的缓冲器1和缓冲器2,于是系统能够开始数控系统加工。在数控系统加工过程中运行方案软件接收信息并且根据信息发送下一批PIDPs到缓冲器1和缓冲器2。
运动控制卡执行数控系统 • 运动控制卡中采用一个由缓冲器1和缓冲器2组成的循环结构。在数控系统加工中,运动控制卡的控制软件有序的从缓冲器1中读取PIDP。由于PIDP的第一个单元为命令目标代码,PIDP的第三个单元为长度和长度单元后面的为相应的参数,运动控制卡中的控制软件能够轻易知道将要做什么工作,能够轻易得到想要的参数和轻易调用相应插补控制功能。
如图3所示。当缓冲器1中的PIDPs执行完,运动控制卡中的控制软件发送信息到PC机请求下一批PIDP同时执行缓冲器2中的PIDPs。在执行缓冲器2期间,下一批从PC机到运动控制的PIDP写入到缓冲器1。当缓冲器2执行完后,缓冲器1再次执行并且另外一批PIDP写入到缓冲器2中。如上所述运动控制卡的控制软件循环使用缓冲器1和缓冲器2,所以无论PIDP目标文件多么大,在运动控制卡中,对于PIDP有4KB的RAM已经足够。每个缓冲器只有2KB。保存运动控制卡的存储资源是显然的。如图3所示。当缓冲器1中的PIDPs执行完,运动控制卡中的控制软件发送信息到PC机请求下一批PIDP同时执行缓冲器2中的PIDPs。在执行缓冲器2期间,下一批从PC机到运动控制的PIDP写入到缓冲器1。当缓冲器2执行完后,缓冲器1再次执行并且另外一批PIDP写入到缓冲器2中。如上所述运动控制卡的控制软件循环使用缓冲器1和缓冲器2,所以无论PIDP目标文件多么大,在运动控制卡中,对于PIDP有4KB的RAM已经足够。每个缓冲器只有2KB。保存运动控制卡的存储资源是显然的。
中间件的应用 • 研究目标是开发一种不但能用于“单一PC+单-MC”结构的数控设备,也能用于“单一PC+多张MC”结构系统的通用G代码编译软件。通过这样的方法PC机设置能够实现比数控设备的设置同时控制一个或者更多,该方法能够提高机械加工的生产效率,使得制造厂能够达到现代大量制造加工的需要。该研究结果, PIDP-G代码控制器的设计和成品,完全考虑到了该研究目标的所有方面。作者的观点,在上层设备(PC)中存储和执行中间件,能够随意的调用。根据不同的G代码程序,中间件能够生成不同的PIDP目标文件,它能够分布到不同的相应运动控制卡中。这样完成一台PC机控制多台加工设备。 • 该方法的基本原理是中间件产生PIDP序列。该中间件的关键部分是PIDP,以及它的格式和代码。中间件最难的部分是进给速度的预计算,换句话说是配置模块中可选预算子模块的学习和开发。
结论 • 文中提到的中间件是一种称为:PIDP-G代码编码器的新的G代码编译器。中间件的特点如下: • 在PC机中运行,不消耗运动控制卡的CPU资源,并且有利于运动控制卡中运行高精度的运算法则和实现多轴实时控制。该中间件编译G代码程序到PIDP是完全顺序执行的,改进传统的解释模式并且解决处理G代码子程序调用和返回的难题,对G代码具有宽广的适用性。完全顺序执行的PIDP序列和循环缓冲器解决对于大型G代码程序连续控制加工的难题,过去的缓冲器尺寸足够的小。由于PIDP是整数编码,PIDP能够通过运动控制卡的控制软件而被轻易识别并且事实控制软件能够轻易补充。PIDP使得通讯更加容易并且具有极好的广泛性。无论运动控制卡多难,运动控制卡的整数是一样的。中间件是一个独立的软件部分。只要提供了PIDP用户手册和调用方法拥护就可以方便的使用它。