CN108107839B - 一种自动转换数控程序格式的方法 - Google Patents

一种自动转换数控程序格式的方法 Download PDF

Info

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
Application number
CN201611058721.3A
Other languages
English (en)
Other versions
CN108107839A (zh
Inventor
孙广举
李正望
刘国航
建俊杰
梁可夫
王宏宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Aircraft Equipment Co Ltd
Original Assignee
Zhengzhou Aircraft Equipment Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengzhou Aircraft Equipment Co Ltd filed Critical Zhengzhou Aircraft Equipment Co Ltd
Priority to CN201611058721.3A priority Critical patent/CN108107839B/zh
Publication of CN108107839A publication Critical patent/CN108107839A/zh
Application granted granted Critical
Publication of CN108107839B publication Critical patent/CN108107839B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical 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/408Numerical 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
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35052High 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是自定义的数据类型:
原型如下,举例为:
Figure BDA0001160452480000051
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是自定义数据类型,原型如下:
Figure BDA0001160452480000091
Figure BDA0001160452480000101
如: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。
CN201611058721.3A 2016-11-24 2016-11-24 一种自动转换数控程序格式的方法 Active CN108107839B (zh)

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)

* Cited by examiner, † Cited by third party
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 中国南方航空工业(集团)有限公司 数控加工程序转换方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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