CN108107839B - 一种自动转换数控程序格式的方法 - Google Patents
一种自动转换数控程序格式的方法 Download PDFInfo
- Publication number
- CN108107839B CN108107839B CN201611058721.3A CN201611058721A CN108107839B CN 108107839 B CN108107839 B CN 108107839B CN 201611058721 A CN201611058721 A CN 201611058721A CN 108107839 B CN108107839 B CN 108107839B
- Authority
- CN
- China
- Prior art keywords
- numerical control
- word
- control program
- text
- coding table
- 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/35—Nc in input of data, input till input file format
- G05B2219/35052—High level language conversion program, DXF format to nc format
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)
- Programmable Controllers (AREA)
Abstract
本发明提供了一种自动转换数控程序格式的方法,其特征在于,包括以下步骤:步骤一:在内存中载入数控程序,即构建文本源source,初始化编码表keytable;构建文本源source:将待转化的数控程序格式按照分行存储的原则组织成字符串数组,分行存储的原则即每一字符串对应数控程序的一个文本行,载入内存,为构建文本源source;编码表keytable:编码表用包含不同类型数控程序的所有基本元素,每个基本元素均都有一个对应的整数,建立数控程序的基本元素与整数之间的映射关系,命名为keytable;步骤二:构建TOKEN阶段:分解文本源source:将文本源source以单词为单位将所述文本行进行再分解,构建单词与编码表keytable中的数控程序的基本元素的映射关系;查询编码表keytable,查询每个单词相应的整数。
Description
技术领域
本发明提供一种自动转换数控程序格式的方法,对外部数据即数控加工代码进行处理,属于数控加工,信息处理技术交叉领域,涉及不同格式数控程序的转换问题。
背景技术
不同的数控加工中心往往采用不同的控制系统,与这些控制系统相适应的数控加工程序格式,例如数控程序格式NC,MPF,I等之间不能自动相互转换。在生产中经常需要转换数控加工程序格式,使之适用于不同的控制系统。数控程序格式NC,MPF,I等,分别对应fanuc,siemens,heidenhain系统的某一特定版本,本质上是文本格式。数控程序由一系列基本元素构成,这里的元素主要有如下几种类型:常量类型,包括数值常量及字符串常量;关键字类型,包括逻辑关键字,算术运算关键字,轴地址关键字,普通地址关键字,特殊类型关键字;标示符;界符等等。传统做法是:人工运用文本编辑器,逐行比较,编辑数控加工程序格式。效率低,易出错。
目前,没有公开发表有类似的转换方法或者工具。
发明内容
本发明提供一种自动转换数控程序格式的方法。它使用编程工具软件,结合数控控制系统的特点,按照获取的文件,分解成自行定义的数控文件元素(token),重新构建成自行定义的数控功能单元(word),在此单元中设置有识别符,依据识别符的不同,选用相应的处理函数,完成转换。依据这样一个逻辑,运用计算机自动完成转换任务。
本发明提供了一种自动转换数控程序格式的方法,其特征在于,包括以下步骤:
步骤一:在内存中载入数控程序,即构建文本源source,初始化编码表keytable;
构建文本源source:将待转化的数控程序格式按照分行存储的原则组织成字符串数组,分行存储的原则即每一字符串对应数控程序的一个文本行,载入内存,为构建文本源source;
编码表keytable:编码表用包含不同类型数控程序的所有基本元素,每个基本元素均都有一个对应的整数,建立数控程序的基本元素与整数之间的映射关系,命名为keytable;
步骤二:构建TOKEN阶段:
分解文本源source:将文本源source以单词为单位将所述文本行进行再分解,构建单词与编码表keytable中的数控程序的基本元素的映射关系;
查询编码表keytable,查询每个单词相应的整数;
完整的单词结构体TOKEN包括旗标flag和字符串str,所述整数以及对应的单词的内容分别赋值给旗标flag和字符串str,构成一个完整的单词结构体TOKEN,上述过程循环进行,将全部文本源source构建为单词结构体TOKEN;
步骤三:定义描述完整的数控动作或功能的语句结构体word:将单词结构体TOKEN根据目标数控程序格式的语法规则构建成语句结构体word。
本发明的有益之处是:
第一,兼容性和可扩展性好。本工具可实现多种数控程序格式的互相转换,若遇到新的控制系统,对代码稍作修改,即可适应新系统。
第二,规范了数控程序代码样式。使程序易读性好,由于编程习惯不同,实现同样功能的数控程序,各功能代码出现的先后次序不尽相同,代码易读性差,本工具规范代码风格后,程序易读性更好。
第三,转换准确度高,效率高。制定好固定的转换规则,由计算机来实现转换,避免了人为原因造成的错误,自动转换瞬间完成。
本方法的应用,成功解决了不同数控程序格式互相转换的难题,提高了工作效率,避免了手工转换时出现的各种各样的问题。
附图说明:
图1为本发明实施例流程示意图;
图2是编码表keytable示意截图;
具体实施方式:
本发明提供了一种自动转换数控程序格式的方法,其特征在于,包括以下步骤:
步骤一:在内存中载入数控程序,即构建文本源source,初始化编码表keytable;
构建文本源source:将待转化的数控程序格式按照分行存储的原则组织成字符串数组,分行存储的原则即每一字符串对应数控程序的一个文本行,载入内存,为构建文本源source;
编码表keytable:编码表用包含不同类型数控程序的所有基本元素,每个基本元素均都有一个对应的整数,建立数控程序的基本元素与整数之间的映射关系,命名为keytable;
步骤二:构建TOKEN阶段:
分解文本源source:将文本源source以单词为单位将所述文本行进行再分解,构建单词与编码表keytable中的数控程序的基本元素的映射关系;
查询编码表keytable,查询每个单词相应的整数;
完整的单词结构体TOKEN包括旗标flag和字符串str,所述整数以及对应的单词的内容分别赋值给旗标flag和字符串str,构成一个完整的单词结构体TOKEN,上述过程循环进行,将全部文本源source构建为单词结构体TOKEN;
步骤三:定义描述完整的数控动作或功能的语句结构体word:将单词结构体TOKEN根据目标数控程序格式的语法规则构建成语句结构体word。
具体实施例:
参阅图1,步骤一:
本阶段任务是在内存中构建文本源source,初始化编码表keytable。
source解释:数控程序格式NC,MPF,I等,分别对应fanuc,siemens,heidenhain系统的某一特定版本,本质上是文本格式。需要将其组织成某一适合的数据类型,载入内存,利于处理。这里选择为vector<sting>类型,命名为source,(C++标准数据类型,若用其他语言,可选用其他合适的格式),该类型变量是字符串容器,每一字符串对应数控程序的一行文本。
编码表keytable:数控程序由一系列基本元素构成,这里的元素主要有如下几种类型:常量类型,包括数值常量及字符串常量;关键字类型,包括逻辑关键字,算术运算关键字,轴地址关键字,普通地址关键字,特殊类型关键字;标示符;界符等等。编码表就是用来描述这些基本元素,每个或每种基本元素都有一个对应的整数。编码表实质上是一些键值对。采用C++时,选择map<string,int>类型。
设置编码表过程就是根据xls格式的编码表,初始化keytable类型。
下边是编码表keytable的部分截图,见图2:
步骤二:
构建单词结构体TOKEN:
TOKEN是自定义的数据类型:
原型如下,举例为:
1.分解文本源source:将文本源source以单词为单位将所述文本行进行再分解,构建单词与编码表keytable中的数控程序的基本元素的映射关系;
查询编码表keytable,查询每个单词相应的整数。
2、建立标识符:标记了待转化的数控程序格式,是NC,还是MPF,或者是I。在查询编码表keytable过程中,可以去查询相应的编码区域,加快查询速度。
如:首先从source获取一个单词,然后查询编码表。
然后,编码以及对应的属性分别赋值给flag,str,构成一个完整的TOKEN,上述过程循环进行。
从source中获取单词完毕后,token也构建完毕。下面是构建完毕的一段token例子:
4008 #END#*NCG;*RO*;*HD*
4999
2007 N
3690 10
3001 X
3690 -163.5
3002 Y
3690 24.5
4999
2007 N
3690 11
3002 Y
3690 -24.5
4999
2007 N
3690 12
3001 X
3690 -123.5
4999
2007 N
3690 13
3002 Y
3690 24.5
4999
2007 N
3690 14
3001 X
3690 163.5
4999
2007 N
3690 15
3002 Y
3690 -24.5
4999
2007 N
3690 16
3001 X
3690 123.5
4999
2007 N
3690 17
3002 Y
3690 24.5
4999
2007 N
3690 18
5999 MCALL
4999
2007 N
3690 19
1 G
3690 0
3003 Z
3690 50
4999
2007 N
3690 20
1001 M
3690 30
4999
4002
4999
步骤三:
WORD构建阶段:
token是简单的单词符号,大多数单一的token并不能描述一个完整的数控动作或者功能;
多个token可以为一个word提供必要的信息;当将目标系统确定后,word构建规则也就随之确定。word描述了一个有意义的数控动作或者功能。
如:
WORD是自定义数据类型,原型如下:
如:TOKEN:1G,3690 0
两个token构成一个word,对应的主旗标nFlag=1,子旗标nSubFlag=0,name=G01,其他值为空,完整描述数控中的快速进给这个功能。
Word处理及目标程序生成:
如:每一个word或一类word都有对应的处理过程,这些处理过程都有相应的编号。如,主要有41:刀偏处理;54:坐标系处理;2002:换刀处理;2004:刀偏号处理;5000:钻孔循环处理;2003:进给速度处理;2007:行号处理;2011:圆弧半径处理;3751:IF逻辑处理3752:GOTO逻辑处理;10000:默认处理等等。这些编号截取自西门子转发那科转换所用的内部处理,其他转换也有自己相应的编号。Word处理的结果调用相应的输出程序,即可存储为所需要转换的目标程序格式。
Claims (1)
1.一种自动转换数控程序格式的方法,其特征在于,包括以下步骤:
步骤一:在内存中载入数控程序,即构建文本源source,初始化编码表keytable;
构建文本源source:将待转化的数控程序格式按照分行存储的原则组织成字符串数组,分行存储的原则即每一字符串对应数控程序的一个文本行,载入内存,为构建文本源source;
编码表keytable:编码表用包含不同类型数控程序的所有基本元素,每个基本元素均都有一个对应的整数,建立数控程序的基本元素与整数之间的映射关系,命名为keytable;
步骤二:构建TOKEN阶段:
分解文本源source:将文本源source以单词为单位将所述文本行进行再分解,构建单词与编码表keytable中的数控程序的基本元素的映射关系;
查询编码表keytable,查询每个单词相应的整数;
完整的单词结构体TOKEN包括旗标flag和字符串str,所述整数以及对应的单词的内容分别赋值给旗标flag和字符串str,构成一个完整的单词结构体TOKEN,步骤二的过程循环进行,将全部文本源source构建为单词结构体TOKEN;
步骤三:定义描述完整的数控动作或功能的语句结构体word:将单词结构体TOKEN根据目标数控程序格式的语法规则构建成语句结构体word。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611058721.3A CN108107839B (zh) | 2016-11-24 | 2016-11-24 | 一种自动转换数控程序格式的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611058721.3A CN108107839B (zh) | 2016-11-24 | 2016-11-24 | 一种自动转换数控程序格式的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108107839A CN108107839A (zh) | 2018-06-01 |
CN108107839B true CN108107839B (zh) | 2020-10-23 |
Family
ID=62204466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611058721.3A Active CN108107839B (zh) | 2016-11-24 | 2016-11-24 | 一种自动转换数控程序格式的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108107839B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169640A (zh) * | 2007-11-30 | 2008-04-30 | 北京数码大方科技有限公司 | 数控系统加工代码的通用生成方法和装置 |
CN101206466A (zh) * | 2006-12-20 | 2008-06-25 | 西安北方光电有限公司 | 数控加工代码转换方法 |
CN101763072A (zh) * | 2009-12-31 | 2010-06-30 | 北京数码大方科技有限公司 | 数控加工代码的转换方法和装置 |
CN101794140A (zh) * | 2009-12-30 | 2010-08-04 | 北京数码大方科技有限公司 | 用于数控系统的代码转换方法及装置 |
CN104793567A (zh) * | 2014-01-16 | 2015-07-22 | 中国南方航空工业(集团)有限公司 | 数控加工程序转换方法和装置 |
-
2016
- 2016-11-24 CN CN201611058721.3A patent/CN108107839B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206466A (zh) * | 2006-12-20 | 2008-06-25 | 西安北方光电有限公司 | 数控加工代码转换方法 |
CN101169640A (zh) * | 2007-11-30 | 2008-04-30 | 北京数码大方科技有限公司 | 数控系统加工代码的通用生成方法和装置 |
CN101794140A (zh) * | 2009-12-30 | 2010-08-04 | 北京数码大方科技有限公司 | 用于数控系统的代码转换方法及装置 |
CN101763072A (zh) * | 2009-12-31 | 2010-06-30 | 北京数码大方科技有限公司 | 数控加工代码的转换方法和装置 |
CN104793567A (zh) * | 2014-01-16 | 2015-07-22 | 中国南方航空工业(集团)有限公司 | 数控加工程序转换方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108107839A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107710086B (zh) | 平移模块、处理模块及控制系统 | |
CN109460219B (zh) | 快速序列化接口控制文件的方法 | |
CN110245002B (zh) | 系统交互方法、装置、设备及存储介质 | |
CN105706092A (zh) | 四值模拟的方法和系统 | |
EP2799981A1 (en) | Method for providing code, code generator and software development environment | |
CN104793567A (zh) | 数控加工程序转换方法和装置 | |
CN104281096A (zh) | 数控代码编译器的构造方法 | |
CN101763072A (zh) | 数控加工代码的转换方法和装置 | |
CN108153522A (zh) | 基于模型转换由midcore生成Spark和Hadoop程序代码的方法 | |
CN108107839B (zh) | 一种自动转换数控程序格式的方法 | |
CN100533383C (zh) | 一种对软件中的数据进行替换的方法 | |
US6912516B1 (en) | Place name expressing dictionary generating method and its apparatus | |
CN108090034B (zh) | 基于集群的单证代码统一编码生成方法和系统 | |
CN116755770A (zh) | 一种基于组合模式的icd头文件生成方法 | |
EP3418913A1 (en) | System and method for merging a source data from a source application into a target data of a target application | |
Dai et al. | IEC 61499 ontology model for semantic analysis and code generation | |
CN109831544A (zh) | 一种应用于电子邮箱地址的编码存储方法及系统 | |
CN112698825B (zh) | 编程积木块转换方法、装置、处理设备及存储介质 | |
CN108845804A (zh) | 一种基于cycle循环的数控代码解释器的设计方法 | |
CN101661278B (zh) | 用于数控机床的代码类型识别方法和装置 | |
CN105446711A (zh) | 获取用于软件开发任务的上下文信息的方法及装置 | |
CN106649764B (zh) | 文字检索方法及文字检索装置 | |
Guo et al. | A study of a universal NC program processor for a CNC system | |
CN102566489B (zh) | 一种数控系统解释器的开放式模块化构造方法 | |
CN107103350A (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 |