CN101609321A - 一种利用子程序调用实现机床运动控制的方法 - Google Patents
一种利用子程序调用实现机床运动控制的方法 Download PDFInfo
- Publication number
- CN101609321A CN101609321A CNA200910055316XA CN200910055316A CN101609321A CN 101609321 A CN101609321 A CN 101609321A CN A200910055316X A CNA200910055316X A CN A200910055316XA CN 200910055316 A CN200910055316 A CN 200910055316A CN 101609321 A CN101609321 A CN 101609321A
- Authority
- CN
- China
- Prior art keywords
- subroutine
- code
- lathe
- call
- file
- 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.)
- Pending
Links
Images
Landscapes
- Numerical Control (AREA)
Abstract
本发明公开了一种在高度可定制机制的机床辅助运动控制系统中支持实时修改其功能的方法。该方法将相应的机床运动操作辅助控制G代码程序,编写成数控系统加工中常用的子程序格式,然后将所有子程序建立成单独的函数库,做成.dat配置文件,在执行机床动作时,通过主程序来调用对应的G代码子程序。该方法使得对应于规格不同但是功能相似的数控机床,不需要对数控软件源代码进行修改,只需修改对应的子程序函数配置文件。这些功能可以直接由机床操作者根据各自具体的使用情况,实时地做出修改以配合现实环境。本发明方法的优点在于将机床动作的功能和实现相分离,主程序中不再保存有相应的G代码,而是通过随用随调的方式来执行。
Description
技术领域:
本发明涉及到数控机床系统领域,特别涉及一种利用子程序调用实现机床运动控制的方法。
背景技术:
机床是制造业的主要生产设备,传统的加工设备多采用通用机床和组合机床等专用机床。随着社会的进步,人们对各类产品的要求越来越高,一些复杂度和精度要求高的产品,需要用先进的柔性生产线来取代传统的刚性生产线,数控机床恰恰满足了这些要求。近年来我国数控技术发展十分迅猛,数控机床的普及率也越来越高。特别是功能满足用户要求(无功能浪费)、可靠性好、价格便宜的普及型机床,已成为国际市场上众多用户渴求的产品,市场前景相当广阔。
数控机床系统制造商在研发数控系统时,针对不同用途的机床,通常会对数控系统进行单独的定制,例如主轴启动,主轴移动等相应的机床运动操作辅助功能。辅助功能通常采用G代码格式编写,如果纯粹的应用G00、G01、G02、G03等指令一步一步的编,一来会使程序冗长繁琐、二来在大量的程序段输入系统时又很容易出错。同时虽然程序中的具体参数不相同,但程序结构通常是类似的,如果程序中会多次重复出现相同结构的一组程序段,无疑会使程序臃肿,极大的增加程序员的工作量。对应与不同但是相似的用途,需要修改大量程序代码,这种做法明显不符合现代软件可重用机制。
同时,此方法使软件的实时修改成为不可能,因为依照现有的方法,即使只需要对程序作极小的改动,也必须在源代码中进行修改,然后编译发行新软件,既费时又费力。
发明内容:
为了解决原有设计中的缺点,本发明的目的是提供一种在高度可定制机制的机床辅助运动控制系统中支持实时修改其功能的方法,使得对应于规格不同但是功能相似的数控机床,不需要对数控软件源代码进行修改,只需修改对应的子程序函数配置文件。这些功能可以直接由机床操作者根据各自具体的使用情况,实时地做出修改以配合现实环境。
本发明的具体技术方案如下:
该方法主要的内容是:将相应的机床运动操作辅助控制G代码程序,编写成数控系统加工中常用的子程序格式,然后将所有子程序建立成单独的函数库,做成.dat配置文件,在执行机床动作时,通过主程序来调用对应的G代码子程序。主要实现步骤如下:
(1)使用记事本或者写字板创建.dat文件;
(2)按照以每一功能段程序以O“XXXX”为子程序名,“M17”为结束反映的子程序格式,创建G代码子程序;
(3)主程序中,根据上面所写的子程序名,提供对应的G代码调用生成函数;
(4)程序启动时,读入配置文件,保存到相应数据结构中;
(5)点击机床按钮时,经过消息路由机制,将消息发送到系统内核;
(6)系统内核调用G代码生成函数,以子程序名和调用次数为参数,生成执行相应功能的G代码程序段;
(7)通过G代码解析器对生成的G代码进行解析,然后执行相应的机床动作。
本发明方法的优点在于将机床动作的功能和实现相分离,主程序中不再保存有相应的G代码,而是通过随用随调的方式来执行。因为子程序函数库以独立形式存在的,需要修改时则相当便捷。另外,本发明还包括以下特点:
1.功能与实现相分离:当客户需要增加或改进相应功能时,不需要对程序做大的修改,只需要依照需要修改的功能,在配置文件中加入对应的子程序,而在主程序中不需要做大的改动,即可实现客户的要求。
2.实时更改方便:子程序函数库在软件安装后,以.dat文件保存在安装文件夹内,如需要对原有功能做小的修改,此时可以实时的修改.dat文件即可。
附图说明:
以下结合附图和具体实施方式来进一步说明本发明。
图1为本发明方法在实施例中的步骤流程图;
图2为本发明方法中.dat文件被相应解释器解释为机床的控制指令的流程示意图。
具体实施方式:
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
本发明方法具体在实施过程中,其运行环境是:数控软件采用C++语言编写,对应的编辑环境为VC++,子程序采用G代码文件格式写入到文本文档中,可以运行在WindowsXP及Windows2000中。
参见图1,具体的实施步骤为:
1:将由机床生产厂商提供的G代码子程序文本文件(通常为.ini、.dat文件,本发明中设置为.dat文件).dat文件放在指定的文件夹目标下。
2:系统启动时,主程序首先将.dat文件读取进缓存,保存CString结构,并对它进行封装。
3:机床启动后,若需要操作机床的移动等基本功能,点击上位机上的对应操作按钮,发送消息到消息队列中,系统主程序将响应此消息,然后调用相关的运动控制函数,在此过程中先通过消息的类别生成相应G文件,然后通过G代码解析器解析成机床的控制指令。
对于子程序文件的修改:在子程序中,不允许删除和修改已存在子程序名,但可以添加子程序段,及修改已经存在的子程序实体。
此外,在实施过程中还需注意以下几点:
(一).dat文件概述
.dat文件可以称为初始化文件或配置文件,其实是文本文件,当然也可以保存为其它后缀结尾的文件格式,这里取data的意思,可以通过写字板程序打开,此文件有一定的文件格式,具体介绍如下:
1:子程序名
在编写程序时,把一组命令构成的某种特定功能,记录在存储器中,其功能使用子程序名来代表,并使用该命令调用它。
子程序名格式:O“XXXX”(字母O为子程序开始符,双引号中为子程序名),子程序名必须唯一,且子程序名自成一段。
2:参数
子程序体中的参数变量用#i(i:1,2,3,4…)或#[<式子>]表示。例如,#5,#109,#[#109-1]且每个变量都对应一个地址,变量分为局部变量、公用变量和系统变量。局部变量是一个在程序中局部使用的变量;公用变量对主程序调用各子程序及各参数程序是公用的;系统变量是在某些特定代号的变量中,放入特定的值。变量的数值(有时是算术运算中间结果)存储在变量地址中,如果不修改,该值将在此变量中保持不变。程序中的变量可以表示坐标轴位置、圆弧半径、倒棱大小、主轴转速、进给量、刀具直径、工件加工尺寸等,变量也可以存储其他变量的地址,在程序中可以调用该地址中所存储的变量数值,程序的变量还可以是逻辑变量。程序也允许进行算术运算,除了加(+)、减(-)、乘(*)、除(/)外,还可以进行复杂的函数运算,如括号([],注意是方括号而不是圆括号)、正弦(SIN)、余弦(COS)、正切(TAN)、反正切(ATAN)、开方(SQRT)、绝对值(ABS)、四舍五入(ROUND)、去尾(FIX)、收尾(FUP)等。其运算指令格式为:
#I=<式子>
右边是常数、变量函数和算符的组合。
3:结束符
在子程序中,以“M17”作为结束符,结束符自成一段,从子程序名开始直到遇到结束符时,表明此段代码为一个完整的子程序。
4:注释
在.dat文件中,用单引号进行注释,一行中单引号后的语句起注释作用,并不对程序起作用。
5:子程序中嵌套调用子程序的过程
格式G65P“XXXX”L“XXXX”:(P后括号内为子程序名,L后数字表示子程序循环次数,不填时默认为1次)
例:
下面是.dat文件中的一段示例:
O″CALI-MOB″
M901 PLC[10017]LEVEL0
M802 P196609
#43=0 #50=0
G65 P″CALI-Z-ONCE″L=#CALIBRATION_TIMES
#41=-#CALIBRATION_SPEED*60#42=#CALIBRATION_SW
G53 G90 G01 Z=#50+5
G04 P200
G906
IF(#43)M801 MSG″{@331}″M30
IF(!#43)M801 MSG″{@332}″
M802 P196608
G906
M17
上述G代码实现对刀辅助功能。
当在数控软件中,当需要实现对刀辅助功能时,我们点击对应的操作按钮,通过消息路由机制,内核接收到消息后,运行G代码生成函数,此类函数通常是以PCSTR(N1 G65 P\″CALI-MOB\″L1\n)为参数(其中CALI-MOB对应上述子程序名),将相应G代码加入到加工命令队列结构中,然后通过G代码解析器解析生成相应控制指令。
(二).dat文件的实现
.dat文件要与源代码紧密配合才能完成工作,其本身是G代码文件,是不能嵌入高级语言中编译,直接控制机床动作的。只能通过相应的解释器将其解释为机床的控制指令。参见图2,在此过程中,有三个的模块需要协同工作:内核、G代码生成模块、G代码解释模块。
本发明方法实现后,应用过程中的操作步骤:
1.系统启动,内核初始化,等待接受来自界面的消息。
2.当用户点击相应的机床操作按钮(例如:主轴启动、回机械原点、移动主轴等辅助操作)时,内核负责收集此时机床的状态信息,例如此时主轴倍率、主轴坐标等,通过消息路由机制,将消息发送给解析器。
3.解析器对接收到的消息作出相应的回应,经由解析模块中G代码生成器中的子程序调用函数读入对应子程序名的G代码,将此段G代码读入相应的数据结构,然后通过对数据进行封装,生成相应完整功能的G代码文件,最后则通过G代码解析器将其解析成机床的运动控制指令。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (5)
1、一种利用子程序调用实现机床运动控制的方法,其特征在于,整个过程是将相应的机床运动操作辅助控制G代码程序,编写成数控系统加工中常用的子程序格式,然后将所有子程序建立成单独的函数库,做成.dat配置文件,在执行机床动作时,通过主程序来调用对应的G代码子程序。
2、根据权利要求1的利用子程序调用实现机床运动控制的方法,其特征在于,所述方法的具体步骤还包括:
(1)使用记事本或者写字板创建.dat文件;
(2)按照以每一功能段程序以0“XXXX”为子程序名,“M17”为结束反映的子程序格式,创建G代码子程序;
(3)主程序中,根据上面所写的子程序名,提供对应的G代码调用生成函数;
(4)程序启动时,读入配置文件,保存到相应数据结构中;
(5)点击机床按钮时,经过消息路由机制,将消息发送到系统内核;
(6)系统内核调用G代码生成函数,以子程序名和调用次数为参数,生成执行相应功能的G代码程序段;
(7)通过G代码解析器对生成的G代码进行解析,然后执行相应的机床动作。
3、根据权利要求1的利用子程序调用实现机床运动控制的方法,其特征在于,所述方法的具体步骤还包括:
(1)将由机床生产厂商提供的G代码子程序文本文件.dat文件放在指定的文件夹目标下;
(2)系统启动时,主程序首先将.dat文件读取进缓存,保存CString结构,并对它进行封装;
(3)机床启动后,若需要操作机床的移动等基本功能,点击上位机上的对应操作按钮,发送消息到消息队列中,系统主程序将响应此消息,然后调用相关的运动控制函数,在此过程中先通过消息的类别生成相应G文件,然后通过G代码解析器解析成机床的控制指令。
4、根据权利要求1的利用子程序调用实现机床运动控制的方法,其特征在于,所述方法在子程序中,不允许删除和修改已存在子程序名,但可以添加子程序段,及修改已经存在的子程序实体。
5、根据权利要求1的利用子程序调用实现机床运动控制的方法,其特征在于,所述方法中数控软件采用C++语言编写,对应的编辑环境为VC++,子程序采用G代码文件格式写入到文本文档中,可以运行在WindowsXP及Windows2000中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200910055316XA CN101609321A (zh) | 2009-07-24 | 2009-07-24 | 一种利用子程序调用实现机床运动控制的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200910055316XA CN101609321A (zh) | 2009-07-24 | 2009-07-24 | 一种利用子程序调用实现机床运动控制的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101609321A true CN101609321A (zh) | 2009-12-23 |
Family
ID=41483097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200910055316XA Pending CN101609321A (zh) | 2009-07-24 | 2009-07-24 | 一种利用子程序调用实现机床运动控制的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101609321A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102621933A (zh) * | 2012-04-24 | 2012-08-01 | 上海维宏电子科技股份有限公司 | 数控系统中读取外部机床控制命令实现加工控制的方法 |
CN103268537A (zh) * | 2013-06-17 | 2013-08-28 | 青岛汇金通电力设备股份有限公司 | 加工控制方法、加工设备及系统 |
CN103777574A (zh) * | 2013-12-26 | 2014-05-07 | 柳州正菱集团有限公司 | 一种数控铣齿机的系统调试方法 |
CN103973716A (zh) * | 2013-01-24 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 互联网应用实现方法和相关装置及通信系统 |
CN104907932A (zh) * | 2015-05-12 | 2015-09-16 | 上海维宏电子科技股份有限公司 | 数控磨床系统中通过对话式参数实现加工程序处理的方法 |
CN105094045A (zh) * | 2014-05-09 | 2015-11-25 | 上海铼钠克数控科技有限公司 | 数控机床及利用其实施的定位加工方法 |
CN104076736B (zh) * | 2014-07-15 | 2017-02-15 | 上海维宏电子科技股份有限公司 | 基于教导指令实现运动控制多分支同步执行的方法 |
US9632804B2 (en) | 2013-01-24 | 2017-04-25 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus, and communication system for implementing internet application |
CN106647642A (zh) * | 2016-12-08 | 2017-05-10 | 上海维宏电子科技股份有限公司 | 数控系统中通过扩展m子程序调用自定义子程序的方法 |
CN107168139A (zh) * | 2017-06-30 | 2017-09-15 | 深圳市山龙智控有限公司 | 基于m码的板材自动上下料方法及装置 |
CN107301041A (zh) * | 2017-05-27 | 2017-10-27 | 福州汇思博信息技术有限公司 | 一种定制系统功能的方法及系统 |
CN110221577A (zh) * | 2018-03-02 | 2019-09-10 | 发那科株式会社 | 数值控制装置 |
CN112306003A (zh) * | 2019-07-26 | 2021-02-02 | 宁波舜宇智能科技有限公司 | 加工装置协同控制方法、系统、可读存储介质和设备 |
CN114063567A (zh) * | 2021-11-15 | 2022-02-18 | 四川航天长征装备制造有限公司 | 一种优化数控程序编程的方法 |
CN114397860A (zh) * | 2021-12-10 | 2022-04-26 | 无锡中车时代智能装备有限公司 | 针对转子铜排加工的机床远程控制方法及设备 |
-
2009
- 2009-07-24 CN CNA200910055316XA patent/CN101609321A/zh active Pending
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102621933B (zh) * | 2012-04-24 | 2014-04-16 | 上海维宏电子科技股份有限公司 | 数控系统中读取外部机床控制命令实现加工控制的方法 |
CN102621933A (zh) * | 2012-04-24 | 2012-08-01 | 上海维宏电子科技股份有限公司 | 数控系统中读取外部机床控制命令实现加工控制的方法 |
US9632804B2 (en) | 2013-01-24 | 2017-04-25 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus, and communication system for implementing internet application |
CN103973716A (zh) * | 2013-01-24 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 互联网应用实现方法和相关装置及通信系统 |
CN103973716B (zh) * | 2013-01-24 | 2015-07-15 | 腾讯科技(深圳)有限公司 | 互联网应用实现方法和相关装置及通信系统 |
CN103268537A (zh) * | 2013-06-17 | 2013-08-28 | 青岛汇金通电力设备股份有限公司 | 加工控制方法、加工设备及系统 |
CN103268537B (zh) * | 2013-06-17 | 2017-09-29 | 青岛汇金通电力设备股份有限公司 | 加工控制方法、加工设备及系统 |
CN103777574A (zh) * | 2013-12-26 | 2014-05-07 | 柳州正菱集团有限公司 | 一种数控铣齿机的系统调试方法 |
CN105094045B (zh) * | 2014-05-09 | 2017-11-10 | 上海铼钠克数控科技股份有限公司 | 数控机床及利用其实施的定位加工方法 |
CN105094045A (zh) * | 2014-05-09 | 2015-11-25 | 上海铼钠克数控科技有限公司 | 数控机床及利用其实施的定位加工方法 |
CN104076736B (zh) * | 2014-07-15 | 2017-02-15 | 上海维宏电子科技股份有限公司 | 基于教导指令实现运动控制多分支同步执行的方法 |
CN104907932A (zh) * | 2015-05-12 | 2015-09-16 | 上海维宏电子科技股份有限公司 | 数控磨床系统中通过对话式参数实现加工程序处理的方法 |
CN104907932B (zh) * | 2015-05-12 | 2017-08-29 | 上海维宏电子科技股份有限公司 | 数控磨床系统中通过对话式参数实现加工程序处理的方法 |
CN106647642A (zh) * | 2016-12-08 | 2017-05-10 | 上海维宏电子科技股份有限公司 | 数控系统中通过扩展m子程序调用自定义子程序的方法 |
CN107301041B (zh) * | 2017-05-27 | 2021-03-05 | 福州汇思博信息技术有限公司 | 一种定制系统功能的方法及系统 |
CN107301041A (zh) * | 2017-05-27 | 2017-10-27 | 福州汇思博信息技术有限公司 | 一种定制系统功能的方法及系统 |
CN107168139A (zh) * | 2017-06-30 | 2017-09-15 | 深圳市山龙智控有限公司 | 基于m码的板材自动上下料方法及装置 |
CN110221577A (zh) * | 2018-03-02 | 2019-09-10 | 发那科株式会社 | 数值控制装置 |
US11340586B2 (en) | 2018-03-02 | 2022-05-24 | Fanuc Corporation | Numerical controller |
CN112306003A (zh) * | 2019-07-26 | 2021-02-02 | 宁波舜宇智能科技有限公司 | 加工装置协同控制方法、系统、可读存储介质和设备 |
CN114063567A (zh) * | 2021-11-15 | 2022-02-18 | 四川航天长征装备制造有限公司 | 一种优化数控程序编程的方法 |
CN114397860A (zh) * | 2021-12-10 | 2022-04-26 | 无锡中车时代智能装备有限公司 | 针对转子铜排加工的机床远程控制方法及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101609321A (zh) | 一种利用子程序调用实现机床运动控制的方法 | |
CN100514234C (zh) | 基于pc机的开放式数控系统 | |
CN102646038B (zh) | 控件内容展现方法、控件内容展现装置以及移动终端 | |
CN113076096B (zh) | 一种桌面应用程序开发方法、装置、设备及存储介质 | |
CN104793567A (zh) | 数控加工程序转换方法和装置 | |
CA2391719A1 (en) | Editing files of remote systems using an integrated development environment | |
US20100138808A1 (en) | Embedded system design device and a method thereof using a target independent model | |
CN103914315A (zh) | 驱动程序的配置方法 | |
CN102880462A (zh) | 基于图模一体化生成组态监控对象的方法及装置 | |
CN101763072A (zh) | 数控加工代码的转换方法和装置 | |
MXPA06013949A (es) | Interfase de diseño auxiliada por computadora. | |
CN113760266B (zh) | 一种功能模块文件的创建方法、创建装置和电子设备 | |
De Boeck et al. | High-level modeling of multimodal interaction techniques using nimmit | |
JP2008059518A (ja) | ポストプロセッサ開発支援システム及びそれを用いたcamシステム | |
JP2016066355A (ja) | Webアプリケーション生成システム、Webアプリケーション生成システムの制御方法、Webアプリケーション生成システムのプログラム、Webアプリケーション生成装置、Webアプリケーション生成装置の制御方法、およびWebアプリケーション生成装置のプログラム | |
CN110989999A (zh) | 代码生成方法、装置、电子设备及介质 | |
CN101364172A (zh) | 一种在Catia V5软件中自动生成工程图框的实现方法 | |
Valvano | Introduction to Embedded Systems | |
Beisheim et al. | Using AutomationML and graph-based design languages for automatic generation of digital twins of cyber-physical systems | |
CN103605318A (zh) | Cnc控制器的功能定制方法、装置以及cnc控制器 | |
CN114365048B (zh) | 数控装置 | |
CN114003224A (zh) | 一种基于taro实现低代码平台的方法 | |
KR20090018481A (ko) | 보고서 작성시스템, 검색결과에 대한 맞춤 보고서 제공방법 및 시스템, 그리고, 저장매체 | |
CN111104179A (zh) | 一种支持开发者模式自定义组件的方法 | |
CN111651142B (zh) | 一种组态型示教器管理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20091223 |