CN113296475B - 一种基于Linux的开放式数控系统的STEP-NC译码器开发方法 - Google Patents
一种基于Linux的开放式数控系统的STEP-NC译码器开发方法 Download PDFInfo
- Publication number
- CN113296475B CN113296475B CN202110533112.3A CN202110533112A CN113296475B CN 113296475 B CN113296475 B CN 113296475B CN 202110533112 A CN202110533112 A CN 202110533112A CN 113296475 B CN113296475 B CN 113296475B
- Authority
- CN
- China
- Prior art keywords
- numerical control
- coordinate
- coordinate system
- module
- decoder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/408—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32043—Program, information flow
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
Abstract
本发明涉及一种基于Linux的开放式数控系统的STEP‑NC译码器开发方法。通过对STEP‑NC数据模型结构的分析,研究基于Linux的开放式数控系统的STEP‑NC代码的译码方法,设计了STEP‑NC译码器的译码工作流程,开发了STEP‑NC译码器的读取模块、数据映射模块、储存模块和规划模块等功能模块,将STEP‑NC译码器并集成于基于Linux的开放式数控系统中,实现了NC译码方式的可配置。这种方法开发的STEP‑NC译码器能够识别ISO 14649标准中定义的2.5D制造特征,提取几何信息和加工信息,生成可用于实际加工的刀具轨迹。
Description
技术领域
本发明涉及数控自动化技术领域,具体涉及一种基于Linux的开放式数控系统的STEP-NC译码器开发方法。
背景技术
NC译码是实现数控系统自动化的重要组成部分,能够实现对数控程序代码的译码,获得相关数控加工信息,实现数控系统的自动化加工。目前国内外最常用的两种NC译码方案分别基于ISO 6983标准代码(G/M代码)和ISO 14649标准代码(STEP-NC代码)。由于G/M代码中不包含零件材料、零件几何形状、刀具运动轨迹规划等面向工件特征的信息,在高精数控发展中逐渐展露了其不足之处,限制了生产效率的提高。而STEP-NC代码的数据模型是面向工件而非面向加工过程,能够对加工相关特征进行描述,能够更为清晰直观地描述加工工件的外形特征和加工操作,为系统提供更多的工件信息,减小由数据格式转换带来的误差等。因此近年来国内外对基于STEP-NC的数控系统、数据结构等开展了大量的研究。又因为G/M代码的译码器在目前的工业应用中占据主流,其研究已经得到了大量的认可并广泛地应用于实际加工当中,因此在开放式数控系统中一般会开发STEP-NC译码器作为NC译码方式的一个可配置方案,实现开放式数控系统NC译码功能的可配置。
发明内容
本发明的目的在于提供一种基于Linux的开放式数控系统的STEP-NC译码器开发方法,实现STEP-NC译码器的各功能模块的开发、能够读取STEP-NC文本文件,将其转换为可被数控系统应用的数据格式,并实现数控加工刀具轨迹规划;STEP-NC译码器可作为NC译码的一种可配置方案,实现开放式数控系统NC译码功能的可配置。
为实现上述目的,本发明的技术方案是:一种基于Linux的开放式数控系统的STEP-NC译码器开发方法,包括对STEP-NC译码器的读取模块、数据映射模块、储存模块、规划模块的开发;所述读取模块能够读取STEP-NC程序文件;所述数据映射模块能够建立STEP-NC代码的数据结构映射原则,定义数据类型映射关系;所述储存模块能够将EXPRESS语言描述实体映射并储存为C++语言描述的类;所述规划模块能够规划出包含坐标值和方向向量信息的刀具轨迹,用于开放式数控系统的运动控制模块实现插补运算处理。
在本发明一实施例中,所述STEP-NC译码器能够通过Qt Creator4.5.3跨平台集成开发环境IDE作为开发工具,将STEP-NC译码器作为一个可配置的NC译码方案集成于自主开发的数控系统中,实现STEP-NC代码和G/M代码的译码方式可配置。
在本发明一实施例中,所述STEP-NC译码器能够实现STEP-NC代码程序的读取、并提取出与数控加工的相关信息。
在本发明一实施例中,所述STEP-NC译码器译码得到的数控加工数据信息,能够被开放式数控系统获取,并由开放式数控系统的运动控制模块进行插补运算处理,实现对ISO14649标准中定义的2.5D制造特征的数控加工。
在本发明一实施例中,所述STEP-NC译码器的译码方式包括如下步骤:
步骤S1、读取模块读取数控代码文本文件,判断读入的文本文件是否为STEP-NC程序文件;如果是,则提取STEP-NC程序文件中的数据程序段代码,并将其转化为可被开放式数控系统利用和操作的数据格式;
步骤S2、通过对EXPRESS语言和C++语言的数据结构和数据类型进行分析,在数据映射模块中建立数据结构映射原则,定义数据类型映射关系,为实现储存模块的映射提供基础;
步骤S3、储存模块通过调用数据映射模块中所建立的映射关系,将读取模块读取到的数据程序段代码映射并储存为相应的C++类对象;
步骤S4、规划模块通过访问储存模块生成的类对象,根据类名提取与走刀轨迹规划相关的特征类数据,获得包括几何特征、加工策略的刀具轨迹规划相关信息,生成包含刀具轨迹坐标值和方向向量信息的加工程序队列,再送入开放式数控系统的运动控制模块中实现插补运算处理。
在本发明一实施例中,所述步骤S4中,对刀具轨迹规划的具体步骤为:
步骤S1、读取模块读取数控代码文本文件,判断读入的文本文件是否为STEP-NC程序文件;如果是,则提取STEP-NC程序文件中的数据程序段代码,并将其转化为可被开放式数控系统利用和操作的数据格式;
步骤S41、读取STEP-NC程序中包括制造特征实体、加工特征实体、加工操作实体的实体,译码获得包括加工特征、几何轮廓、加工策略、坐标系相对关系的数控加工信息;
步骤S42、根据译码获得的开放式数控系统的坐标系相对关系,以机床坐标系作为机床的固有定位坐标系,确定装夹坐标系、工件坐标系和特征坐标系相对机床坐标系的原点坐标偏移量和坐标轴方向矢量,通过坐标变换获得这三个坐标系的表示方法,建立坐标变换矩阵;
步骤S43、根据译码获得的开放式数控系统的加工特征、几何轮廓、加工策略,规划出STEP-NC程序的刀具轨迹行程的各拐点的坐标值和方向向量,并通过坐标变换矩阵,获得刀具轨迹在数控机床上的轨迹点坐标值和方向向量。
在本发明一实施例中,所述步骤S42中装夹坐标系、工件坐标系和特征坐标系相对机床坐标系的坐标变换矩阵为:
其中,[XM,YM,ZM]T为新坐标系各点相对于机床坐标系的坐标偏移量,分别为机床坐标系X、Y、Z轴的方向矢量:[1,0,0]T、[0,1,0]T、[0,0,1]T,分别为STEP-NC代码实体中获得的新坐标系相对机床坐标系的X、Y、Z轴方向矢量,[XN,YN,ZN]T为将要建立的新坐标系中各点的坐标值,[XO,Yo,Zo]T为平移变换矩阵,即新坐标系原点相对机床坐标系的坐标值。
相较于现有技术,本发明具有以下有益效果:本译码器开发方法开发的译码器与与现有译码器相比具有以下优势:
(1)该STEP-NC译码器能够支持ISO 14649标准代码的译码,能够有效避免数据交换过程当中加工数据信息的丢失、提高信息利用率。
(2)该STEP-NC译码器能够对数控程序文件读取、映射等过程进行简化处理,主要提取与数控加工相关的位置特征和加工操作特征等信息,等具备利用条件时,再对其他数据信息进行提取添加。这种简化处理方法能够减少译码中不必要的过程。
(3)该STEP-NC译码器能够实现对刀具轨迹的规划,建立数控系统装夹坐标系、工件坐标系和特征坐标系相对机床坐标系的变换关系,计算出刀具轨迹的轨迹点在机床坐标系中的位置信息和方向矢量,使数控加工的走刀更为平稳,加工精度更为准确。
(4)该STEP-NC译码器作为开放式数控系统的一种NC译码可配置方案,可实现NC译码的可配置,使基于Linux的开放式数控系统不仅能够支持ISO 6983标准代码译码,还能够支持ISO 14649标准代码的译码,为未来开放式数控系统的开放化和智能化发展奠定了稳固的基础。
附图说明
图1为本发明基于Linux的开放式数控系统的STEP-NC译码器开发方法框架图。
图2是本发明的STEP-NC译码器的工作流程示意图。
图3是本发明的STEP-NC译码器的功能模块构成示意图。
图4是本发明STEP-NC译码器主要针对的2.5D铣削加工策略示意图。
图5是本发明的NC译码方式可配置选择的属性参数配置界面图。
图6是本发明的实施例的刀具轨迹规划示意图。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
图1为本发明基于Linux的开放式数控系统的STEP-NC译码器开发方法框架图。本发明一种基于Linux的开放式数控系统的STEP-NC译码器开发方法,包括对STEP-NC译码器的读取模块、数据映射模块、储存模块、规划模块的开发;所述读取模块能够读取STEP-NC程序文件;所述数据映射模块能够建立STEP-NC代码的数据结构映射原则,定义数据类型映射关系;所述储存模块能够将EXPRESS语言描述实体映射并储存为C++语言描述的类;所述规划模块能够规划出包含坐标值和方向向量信息的刀具轨迹,用于开放式数控系统的运动控制模块实现插补运算处理。
以下为本发明具体实现实例。
图2是本发明的STEP-NC译码器的工作流程示意图。通过对ISO 14649标准的数据模型和STEP-NC程序的结构的分析,设计STEP-NC译码器的工作流程。先判断读入的文本文件是否为STEP-NC程序文件。如果是,则提取STEP-NC程序文件中的数据程序段代码并通过数据映射转化为数控系统可以操作的数据类型,最后通过提取与数控加工相关的特征类数据,获得几何特征、加工策略等信息,生成可由运动控制模块处理的包含刀具轨迹坐标值和方向向量信息的加工程序队列,实现插补运算。
图3是本发明的STEP-NC译码器的功能模块构成示意图。通过对STEP-NC译码器的工作流程的分析,将STEP-NC译码器从软件构成角度划分为数据映射模块和读取模块、储存模块、规划模块。读取模块的主要任务是读取STEP-NC程序文件,并对读入内容进行一定程度的简化处理成能够被系统调用的结构体数组。数据映射模块主要是通过分析EXPRESS语言和C++语言的数据结构和数据类型,建立数据结构映射原则,定义数据类型映射关系,为实现储存模块的映射提供基础。储存模块主要是通过调用数据映射模块中所建立的映射关系,将读取模块生成的程序结构体数组映射并储存为相应的C++类。规划模块通过访问储存模块生成的类对象,根据类名提取与走刀轨迹规划相关的特征类数据,获得几何特征、加工策略等刀具轨迹规划相关信息,生成包含刀具轨迹坐标值和方向向量信息的加工程序队列。
图4是本发明STEP-NC译码器主要针对的2.5D铣削加工策略示意图。ISO 14649标准针对2.5D铣削加工特征定义了七种基本加工策略,图4中实线为实际铣削轨迹,虚线为无切削时的快速移动。(a)、(b)用于平面铣削,(c)、(e)、(f)、(g)用于型腔或轮廓的铣削加工,(d)用于槽的铣削。如果定义的加工策略不能够满足实际加工要求,还可以通过在加工操作实体中添加具体的实体属性,给出详细的加工策略。
图5是本发明的NC译码方式可配置选择的属性参数配置界面图。通过采用QtCreator 4.5.3跨平台集成开发环境(IDE)作为开发工具,结合上述的STEP-NC代码的译码工作流程和译码器主要功能模块开发了STEP-NC译码器作为一个可配置的NC译码方案集成于基于Linux的开放式数控系统中。如图5所示,只需要在属性参数配置界面上的“编码格式”选择栏中选择“STEP-NC”,即可调用STEP-NC译码器,实现对STEP-NC程序文件的查找、打开、编辑、译码等功能。
图6是本发明的实施例的刀具轨迹规划示意图。在该实施例中,以型腔铣削为对象,采用图4中(g)的走刀策略,则将通过跟踪几何轮廓方式向内循环往复铣削,如图6所示。从外向内,最外层实线和第二层实线分别代表该型腔的特征几何轮廓和加工几何轮廓,虚线为加工过程中的走刀轨迹。
第一次轮廓跟踪加工的X、Y向的走刀路程分别为l1,w1:
其中l为型腔特征几何轮廓的X方向长度,w为型腔特征几何轮廓的Y方向长度,la为加工余量,d为刀具有效直径。轮廓跟踪加工阶段的循环走刀次数n由X向和Y向走刀次数nl、nw的较小值决定:
n=min[nl,nw]
其中ls为平行相邻的两个走刀轨迹之间的间距。第m次轮廓跟踪走刀轨迹的X、Y向的走刀路程lm和wm分别为:
通过以上走刀路径的计算方法,可得到刀具走刀轨迹在工件坐标系中所有拐点的坐标值,结合该STEP-NC程序中定义的工件坐标系相对机床坐标系的位置关系。通过以下坐标变换公式即可得到该型腔的刀具走刀轨迹上各轨迹点在机床坐标系中的坐标值和方向矢量。
其中[XM,YM,ZM]T为该坐标系各点相对于机床坐标系的坐标偏移量,分别为机床坐标系X、Y、Z轴的方向矢量:[1,0,0]T、[0,1,0]T、[0,0,1]T,分别为从STEP-NC代码实体中获得的新坐标系相对机床坐标系的X、Y、Z轴方向矢量,[XN,YN,ZN]T为将要建立的新坐标系中各点的坐标值,[XO,Yo,Zo]T为平移变换矩阵,即新坐标系原点相对机床坐标系的坐标值。
上述实施例只为了说明本发明的技术构思和特点,主要目的在于让熟悉此项技术的人士能够了解本发明的内容和操作手段,并加以应用,并不能以此限制本发明的保护范围。凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
Claims (2)
1.一种基于Linux的开放式数控系统的STEP-NC译码器开发方法,其特征在于,包括对STEP-NC译码器的读取模块、数据映射模块、储存模块、规划模块的开发;所述读取模块能够读取STEP-NC程序文件;所述数据映射模块能够建立STEP-NC代码的数据结构映射原则,定义数据类型映射关系;所述储存模块能够将EXPRESS语言描述实体映射并储存为C++语言描述的类;所述规划模块能够规划出包含坐标值和方向向量信息的刀具轨迹,用于开放式数控系统的运动控制模块实现插补运算处理;
所述STEP-NC译码器能够通过Qt Creator 4.5.3跨平台集成开发环境IDE作为开发工具,将STEP-NC译码器作为一个可配置的NC译码方案集成于自主开发的数控系统中,实现STEP-NC代码和G/M代码的译码方式可配置;
所述STEP-NC译码器能够实现STEP-NC代码程序的读取、并提取出与数控加工的相关信息;
所述STEP-NC译码器译码得到的数控加工数据信息,能够被开放式数控系统获取,并由开放式数控系统的运动控制模块进行插补运算处理,实现对ISO 14649标准中定义的2.5D制造特征的数控加工;
所述STEP-NC译码器的译码方式包括如下步骤:
步骤S1、读取模块读取数控代码文本文件,判断读入的文本文件是否为STEP-NC程序文件;如果是,则提取STEP-NC程序文件中的数据程序段代码,并将其转化为可被开放式数控系统利用和操作的数据格式;
步骤S2、通过对EXPRESS语言和C++语言的数据结构和数据类型进行分析,在数据映射模块中建立数据结构映射原则,定义数据类型映射关系,为实现储存模块的映射提供基础;
步骤S3、储存模块通过调用数据映射模块中所建立的映射关系,将读取模块读取到的数据程序段代码映射并储存为相应的C++类对象;
步骤S4、规划模块通过访问储存模块生成的类对象,根据类名提取与走刀轨迹规划相关的特征类数据,获得包括几何特征、加工策略的刀具轨迹规划相关信息,生成包含刀具轨迹坐标值和方向向量信息的加工程序队列,再送入开放式数控系统的运动控制模块中实现插补运算处理;
所述步骤S4中,对刀具轨迹规划的具体步骤为:
步骤S41、读取STEP-NC程序中包括制造特征实体、加工特征实体、加工操作实体的实体,译码获得包括加工特征、几何轮廓、加工策略、坐标系相对关系的数控加工信息;
步骤S42、根据译码获得的开放式数控系统的坐标系相对关系,以机床坐标系作为机床的固有定位坐标系,确定装夹坐标系、工件坐标系和特征坐标系相对机床坐标系的原点坐标偏移量和坐标轴方向矢量,通过坐标变换获得这三个坐标系的表示方法,建立坐标变换矩阵;
步骤S43、根据译码获得的开放式数控系统的加工特征、几何轮廓、加工策略,规划出STEP-NC程序的刀具轨迹行程的各拐点的坐标值和方向向量,并通过坐标变换矩阵,获得刀具轨迹在数控机床上的轨迹点坐标值和方向向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110533112.3A CN113296475B (zh) | 2021-05-17 | 2021-05-17 | 一种基于Linux的开放式数控系统的STEP-NC译码器开发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110533112.3A CN113296475B (zh) | 2021-05-17 | 2021-05-17 | 一种基于Linux的开放式数控系统的STEP-NC译码器开发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296475A CN113296475A (zh) | 2021-08-24 |
CN113296475B true CN113296475B (zh) | 2022-06-21 |
Family
ID=77322352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110533112.3A Active CN113296475B (zh) | 2021-05-17 | 2021-05-17 | 一种基于Linux的开放式数控系统的STEP-NC译码器开发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296475B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS49119084A (zh) * | 1973-03-23 | 1974-11-14 | ||
CN100429594C (zh) * | 2006-08-31 | 2008-10-29 | 山东大学 | 一种智能step-nc控制器系统及其实现方法 |
CN103064391B (zh) * | 2012-12-28 | 2015-11-18 | 广州数控设备有限公司 | 基于TCP/IP协议及Linux网络编程的数控系统远程DNC控制方法 |
-
2021
- 2021-05-17 CN CN202110533112.3A patent/CN113296475B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113296475A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108345266B (zh) | 一种五轴数控机床数控程序生成方法 | |
CN103454972B (zh) | 基于ug nx api的刀具五轴数控磨削加工自动编程的方法 | |
CN103576604A (zh) | 数控机床定位误差动态实时补偿系统 | |
CN110096033A (zh) | 一种校对数控程序精准度的方法 | |
CN102621929B (zh) | 双转台五轴联动数控机床的夹具高度及加工路径优化方法 | |
CN105302070A (zh) | 一种非正交摆头转台类五轴机床后置处理方法 | |
CN103592888B (zh) | 国产双摆头五轴机床的后置处理方法 | |
CN103197605A (zh) | 基于标准模板和表达式驱动的齿轮滚削cnc自动编程方法 | |
CN102608952A (zh) | 对采用球头刀具的五轴联动机床平滑加工路径的方法 | |
CN106774169A (zh) | 非圆柱曲面的数控车削加工自动化编程方法 | |
CN116851930A (zh) | 一种三维五轴曲面激光切割轨迹生成方法及装置 | |
CN116068959A (zh) | 基于刀路补偿的加工方法、电子设备及存储介质 | |
CN113296475B (zh) | 一种基于Linux的开放式数控系统的STEP-NC译码器开发方法 | |
Srijuntongsiri et al. | Optimisation of five-axis machining G-codes in the angular space | |
CN102478832A (zh) | 可实现数控机床曲面加工的三坐标圆弧插补方法及装置 | |
CN112975165A (zh) | 坡口切割方法、装置、机器人和可读存储介质 | |
CN111275662B (zh) | 基于二维码的工件定位方法、装置、设备和存储介质 | |
Zhang et al. | Reinforcement learning–based tool orientation optimization for five-axis machining | |
CN107991992A (zh) | 一种液压阀块的数控铣切刀具轨迹生成方法 | |
CN114739290B (zh) | 线激光扫描化铣胶刻线的路径规划方法及系统 | |
CN105137919A (zh) | 一种生成特征阵列数控宏程序的方法 | |
Campos et al. | Modelling and implementing circular sawblade stone cutting processes in STEP-NC | |
CN101477355A (zh) | 一种用于微型切割机的数控系统 | |
CN114357549A (zh) | 一种基于坐标变换的圆弧面玻璃切割方法 | |
CN102023609A (zh) | 一种数控圆雕机专用后置处理器及其处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |