CN112859753B - 数控系统二次开发方法、装置、设备及可读存储介质 - Google Patents
数控系统二次开发方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN112859753B CN112859753B CN202110071913.2A CN202110071913A CN112859753B CN 112859753 B CN112859753 B CN 112859753B CN 202110071913 A CN202110071913 A CN 202110071913A CN 112859753 B CN112859753 B CN 112859753B
- Authority
- CN
- China
- Prior art keywords
- control system
- numerical control
- secondary development
- kernel
- function
- 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/414—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
- G05B19/4142—Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by the use of a microprocessor
-
- 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/34—Director, elements to supervisory
- G05B2219/34013—Servocontroller
Abstract
本发明公开了一种数控系统二次开发方法,该方法包括:数控系统内核启动时,加载预设的二次开发模块,并获取二次开发模块中的用户处理函数,和数控系统内核中的二次开发接口函数;根据用户处理函数的输入参数,确定用户处理函数对应的数控系统内核事件;调用二次开发接口函数,对数控系统内核事件对应的内核数据进行修改,以完成数控系统的二次开发模块。本发明还公开了一种数控系统二次开发装置、设备及可读存储介质。本发明通过调用二次开发接口函数,使得二次开发模块可以访问和修改数控系统内核数据,以实现对数控系统内核的二次开发,本申请提供了数控系统内核级别的二次开发接口,满足了日益增加的内核级修改的新需求。
Description
技术领域
本发明涉及数控机床技术领域,尤其涉及数控系统二次开发方法、装置、设备及可读存储介质。
背景技术
当前,数控系统已被广泛应用于各种自动化机床设备。随着民用产品的不断更新换代,随之也出现了用于生产相应零部件的新型机床设备,这要求数控系统必须提供驱动这些新型机床设备的新功能,目前数控系统厂商均是以发布具有新功能的新版本系统软件来应对。而民用产品广泛,新设备类型较多,一套软件难以满足所有新设备需求,数控系统厂商不得不提供多种型号系统软件,这极大地增加了人力成本,现有技术中解决以上问题的方法一般是维护一个数控系统内核平台,如译码器、插补器和总线通讯模块,在此基础上提供二次开发功能来适应不断变化的新需求,目前很多数控系统厂家均提供了人机界面的二次开发接口,可通过组态或其他形式进行二次定制化开发,但仍无法满足日益增加的内核级修改的新需求。
发明内容
本发明的主要目的在于提供一种数控系统二次开发方法、装置、设备及可读存储介质,旨在解决现有技术无法提供内核级别的二次开发接口,无法满足日益增加的内核级修改的新需求的技术问题。
此外,为实现上述目的,本发明还提供一种数控系统二次开发方法,所述数控系统二次开发方法包括以下步骤:
当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数;
根据所述用户处理函数的输入参数,确定所述用户处理函数对应的数控系统内核事件;
调用所述二次开发接口函数,对所述数控系统内核事件对应的内核数据进行修改,以完成数控系统的二次开发。
可选地,所述当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数的步骤之后,包括:
当检测到目标数控系统内核事件对应的目标处理流程完成,且所述目标数控系统内核事件为激活状态时,触发所述目标数控系统内核事件;
所述根据所述用户处理函数的输入参数,确定所述用户处理函数对应的数控系统内核事件的步骤包括:
调用所述用户处理函数,将所述目标数控系统内核事件作为参数传入所述用户处理函数中的目标用户处理函数。
可选地,所述当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数的步骤之后,包括:
判断所述二次开发模块的数量是否大于零;
若所述二次开发模块的数量大于零,且存在被触发的数控系统内核事件,则调用所有二次开发模块中的用户处理函数,并将所述被触发的数控系统内核事件作为参数输入所有的用户处理函数。
可选地,所述当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数的步骤之后,包括:
当检测到所述数控系统内核执行内核处理流程时,获取所述内核处理流程对应的内核处理事件;
当接收到激活指令时,将所述激活指令对应的内核处理事件的状态更改为激活状态;
当接收到取消指令时,将所述激活指令对应的内核处理事件的状态更改为取消状态。
可选地,所述当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数的步骤包括:
当二次开发模块加载完成后,查询预设函数名称集中目标函数名称对应的函数句柄,以获取所述二次开发模块中所述目标函数名称对应的用户处理函数。
可选地,所述当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数的步骤包括:
当二次开发模块加载完成后,获取所述二次开发模块中的入口点函数;
执行所述入口点函数,获取数控系统内核中所有的二次开发接口函数。
可选地,所述获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数的步骤之前,包括:
当接收到数控系统二次开发指令时,生成所述数控系统二次开发指令对应的二次开发模块;
将所述二次开发模块的路径存入预设注册表或预设配置文件;
所述当所述数控系统内核启动时,加载预设的二次开发模块的步骤包括:
当所述数控系统内核启动时,读取所述预设注册表或所述预设配置文件,获取所述二次开发模块的路径,以加载所述二次开发模块。
此外,为实现上述目的,本发明还提供一种数控系统二次开发装置,所述数控系统二次开发装置包括:
函数获取模块,用于当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数;
内核事件确定模块,用于根据所述用户处理函数的输入参数,确定所述用户处理函数对应的数控系统内核事件;
内核数据修改模块,用于调用所述二次开发接口函数,对所述数控系统内核事件对应的内核数据进行修改,以完成数控系统的二次开发。
此外,为实现上述目的,本发明还提供一种数控系统二次开发设备,所述数控系统二次开发设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数控系统二次开发程序,所述数控系统二次开发程序被所述处理器执行时实现如上述的数控系统二次开发方法的步骤。
此外,为实现上述目的,本发明还提供一种可读存储介质,所述可读存储介质上存储有数控系统二次开发程序,所述数控系统二次开发程序被处理器执行时实现如上述的数控系统二次开发方法的步骤。
本发明实施例提出的一种数控系统二次开发方法、装置、设备及可读存储介质。本发明实施例中当数控系统二次开发程序检测到数控系统内核启动时,通过加载预设二次开发模块,来获取用户处理函数和内核接口函数,通过用户处理函数,确定需要二次开发的开发事件,又通过内核接口函数,确定可以进入数控系统内核的通道,通过调用内核接口函数,进入数控系统内核,进而修改开发事件对应的数据,以实现对于数控系统内核的二次开发,本申请提供了内核级别的二次开发接口,满足了日益增加的内核级修改的新需求。
附图说明
图1为本发明实施例提供的数控系统二次开发设备一种实施方式的硬件结构示意图;
图2为本发明数控系统二次开发方法第一实施例的流程示意图;
图3为本发明数控系统二次开发方法第二实施例的流程示意图;
图4为本发明数控系统二次开发装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
本发明实施例数控系统二次开发终端(又叫终端、设备或者终端设备)可以是个人电脑等,安装在数控机床上的具有数据处理功能的带有显示屏的设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数控系统二次开发程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数控系统二次开发程序,所述数控系统二次开发程序被处理器执行时实现下述实施例提供的数控系统二次开发方法中的操作。
基于上述设备硬件结构,提出了本发明数控系统二次开发方法的实施例。
参照图2,在本发明数控系统二次开发方法的第一实施例中,所述数控系统二次开发方法包括:
步骤S10,当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数。
本实施例中数控系统二次开发方法应用于数控系统内核,其中,数控系统是指,驱动一些生产商用设备的自动化机床的某些功能的程序,这些程序通常由自动化机床的生产商,在将自动化设备出厂前预装的,自动化机床的生产商对于预装的数控系统的开发与设计即是一次开发,而本申请中的数控系统二次开发方法应用于对自动化机床的数控系统再次开发的应用场景,以解决随着商用设备的不断更新迭代,自动化机床的使用方无法在内核级别上对数控系统进行二次开发的问题。
本实施例中当数控系统开发人员触发针对数控系统内核开发的事件时,数控系统内核将被启动,而当数控系统二次开发程序检测到数控系统内核启动时,便会获取预设二次开发模块内的用户处理函数和二次开发接口函数,其中,预设二次开发模块是指,实现共享函数库的一种方式,是一种允许程序共享执行特殊任务所必需的代码和其他资源的二进制程序文件;本实施例中的用户处理函数是指,数控系统内核开发事件对应的函数,用户处理函数的输入参数为开发事件的事件类型,可以用整型常量表示,例如,整型常量a表示参数读取类的开发事件,则a对应的事件类型为参数读取,开发事件为读写参数文件,本实施例中的二次开发接口函数是指,通过调用二次开发接口函数,数控系统二次开发程序可以通过数控系统内核通道(即数控系统内核接口)访问或修改数控系统内核里的数据,数控系统内核可以调用二次开发接口函数的前提是,数控系统内核需要获取二次开发接口函数的函数名,进而通过函数名获取二次开发接口函数的句柄,以实现数控系统内核可以调用二次开发接口函数,其中,句柄是指,用来标识对象或者项目的标识符。
步骤S20,根据所述用户处理函数的输入参数,确定所述用户处理函数对应的数控系统内核事件。
由上述实施例可知,用户处理函数的输入参数是开发事件的事件类型,当数控系统二次开发程序获取到预设二次开发模块中的用户处理函数后,会查询用户处理函数的输入参数,通过输入参数确定事件类型,进而确定开发事件,如表1所示,表1给出了几种事件类型及其表示的开发事件。
事件类型 | 开发事件 |
参数读取 | 读写参数文件 |
代码行获取 | 获取新的一行数控代码 |
主轴处理 | 对主轴进行处理 |
倍率读取 | 获取进给倍率 |
复位开始 | 开始进行复位 |
表1
步骤S30,调用所述二次开发接口函数,对所述数控系统内核事件对应的内核数据进行修改,以完成数控系统的二次开发。
数控系统二次开发程序获取到内核接口函数后,通过调用内核接口函数,通过内核接口函数对应的内核通道进入数控系统内核,查询数控系统内核内开发事件对应的数据,然后对开发事件对应的数据进行修改,将所有的开发事件对应的数据修改完成后,便完成了数控系统的二次开发,例如开发事件“终点坐标变换”,数控系统内核内开发事件对应的数据是“终点坐标”,而对其进行修改的过程是对“终点坐标”进行变换。
具体地,步骤S10之后的步骤,包括:
步骤a1,当检测到目标数控系统内核事件对应的目标处理流程完成,且所述目标数控系统内核事件为激活状态时,触发所述目标数控系统内核事件。
步骤S20细化的步骤包括:
步骤a2,调用所述用户处理函数,将所述目标数控系统内核事件作为参数传入所述用户处理函数中的目标用户处理函数。
本实施例中的目标数控系统内核事件是指数控系统内核触发启动的事件,可知地,在数控系统内核启动时,数控系统内核会自动加载预设的二次开发模块,当数控系统内核成功加载预设的二次开发模块后,数控系统内核会获取加载成功的二次开发模块内的用户处理函数,用户处理函数用于后续事件触发时进行调用,这里的事情触发即是指触发目标数控系统内核事件,本实施例中目标数控系统内核事件被触发,且调用用户处理函数的前提是,目标数控系统内核事件处于激活状态,因为只有被激活的数控系统内核事件触发时,数控系统内核才会调用已获取的用户处理函数,且每个数控系统内核事件均对应有处理流程或者流程点,当数控系统内核事件对应的处理流程或流程点完成时,系统才会触发该数控系统内核事件,并调用二次开发模块中与数控系统内核事件对应的用户处理函数,可知地,数控系统在启动时会加载多个二次开发模块,并在数控系统内核事件触发时遍历调用所有用户处理函数,在调用所有用户处理函数后,数控系统二次开发程序会将目标数控系统内核事件作为参数传入所有用户处理函数中的目标用户处理函数,可知地,用户处理函数与数控系统内核事件具有对应关系,本实施例中的目标用户处理函数是被触发的目标数控系统内核事件对应的用户处理函数。
具体地,步骤S10之后的步骤,还包括:
步骤b1,判断所述二次开发模块的数量是否大于零。
步骤b2,若所述二次开发模块的数量大于零,且存在被触发的数控系统内核事件,则调用所有二次开发模块中的用户处理函数,并将所述被触发的数控系统内核事件作为参数输入所有的用户处理函数。
可知地,本实施例中的二次开发模块实际上一个C语言生成的动态链接库,因此,本实施例中二次开发模块的数量可以为0个,即不存在二次开发模块,但由于二次开发模块是本实施例中数控系统二次开发方法实现的重点,且应用的场景中至少存在一个二次开发模块,也可以存在多个二次开发模块,因此,本实施例需要判断二次开发模块的数量是否大于零,且判定等于0的情况不属于本实施例中数控系统二次开发方法的应用范围,当判定二次开发模块的数量大于0,且存在被触发的数控系统内核事件时,数控系统二次开发程序会调用所有二次开发模块中所有的用户处理函数,然后将被触发的数控系统内核事件作为参数输入所有的用户处理函数,作为遍历的操作过程,其目的是查找到被触发的数控系统内核事件对应的用户处理函数。
具体地,步骤S10之前的步骤包括:
步骤c1,当检测到所述数控系统内核执行内核处理流程时,获取所述内核处理流程对应的内核处理事件。
步骤c2,当接收到激活指令时,将所述激活指令对应的内核处理事件的状态更改为激活状态。
步骤c3,当接收到取消指令时,将所述激活指令对应的内核处理事件的状态更改为取消状态。
可知地,数控系统内核可以通过触发数控系统内核事件,来调用二次开发模块中的用户处理函数,当数控系统内核触发启动的事件是启动事件时,启动事件对应的用户处理函数可以在启动事件被触发时,通过使用内核事件激活(或取消)二次开发接口来激活(或取消)其他内核事件,以控制具体哪个数控系统内核事件可以被触发,可知地,只有被激活的事件触发时数控系统内核才会调用已获取的用户处理函数,上述启动事件是预设的一个常处于激活状态的事件,因此,启动事件对应的用户处理函数才可以随时被调用,这是数控系统二次开发具有的事件选择能力,可根据不同的开发需求,确定具体可被触发的数控系统内核事件,本实施例中的激活状态是指数控系统内核事件可以被触发,取消状态是指数控系统内核事件不能被触发,激活指令是指将数控系统内核事件调整为激活状态的指令,取消指令是指将数控系统内核事件调整为取消状态的指令。
具体地,步骤S10之前的步骤,还包括:
步骤d1,当接收到数控系统二次开发指令时,生成所述数控系统二次开发指令对应的二次开发模块。
步骤d2,将所述二次开发模块的路径存入预设注册表或预设配置文件。
步骤S10细化的步骤包括:
步骤d3,当所述数控系统内核启动时,读取所述预设注册表或所述预设配置文件,获取所述二次开发模块的路径,以加载所述二次开发模块。
可知地,预设二次开发模块还可以根据功能升级或改进进行更新,当数控系统二次开发程序接收到二次开发指令时,将生成二次开发指令对应的二次开发模块,并生成用户处理函数存储至二次开发模块中,可以理解的是,二次开发模块相当于一个数据库文件,即二次开发模块也具有自己的地址,在无法获取到二次开发模块的地址的情况下,是无法加载二次开发模块以获取其中的用户处理函数的,因此,为了使数控系统内核能够获取到二次开发模块中用户处理函数的函数名及函数句柄,以使数控系统内核能够调用二次开发模块中的用户处理函数,可知地,本实施例通过将二次开发模块的路径存储至预设注册表,然后再将预设注册表发送至数控系统内核,以使数控系统内核可以通过预设注册表获取二次开发模块的路径,进而使数控系统内核能够调用二次开发模块中的用户处理函数,可知地,本实施例中的预设注册表是指,用于存储系统或应用程序的设置信息的数据库。
在本实施例中当数控系统二次开发程序检测到数控系统内核启动时,通过加载预设二次开发模块,来获取用户处理函数和内核接口函数,通过用户处理函数,确定需要二次开发的开发事件,又通过内核接口函数,确定可以进入数控系统内核的通道,通过调用内核接口函数,进入数控系统内核,进而修改开发事件对应的数据,以实现对于数控系统内核的二次开发,本申请提供了内核级别的二次开发接口,满足了日益增加的内核级修改的新需求。
进一步地,参照图3,在本发明上述实施例的基础上,提出了本发明数控系统二次开发方法的第二实施例。
本实施例是第一实施例中步骤S10细化的步骤,本实施例与本发明上述实施例的区别在于:
步骤S11,当二次开发模块加载完成后,查询预设函数名称集中目标函数名称对应的函数句柄,以获取所述二次开发模块中所述目标函数名称对应的用户处理函数。
步骤S12,当二次开发模块加载完成后,获取所述二次开发模块中的入口点函数。
步骤S13,执行所述入口点函数,获取数控系统内核中所有的二次开发接口函数。
可知地,由上述实施例可知,数控系统的内核接口与二次开发模块具有关联关系,当数控系统二次开发程序检测到数控系统内核启动时,会查询数控系统内核中处于可用状态的空闲内核接口,可知地,数控系统内核可以在启动过程中加载若干个用户二次开发程序生成的二次开发模块,数控系统内核接口中可能存在处于工作状态的接口,相对地,数控系统内核接口中就会存在处于空闲状态(即本实施例中的可用状态)的内核接口(即本实施例中的空闲内核接口),根据数控系统内核接口与二次开发模块的关联关系,可以确定空闲内核接口关联的第一二次开发模块,并获取存储在第一二次开发模块中的第一内核接口函数,可以理解的是,第一二次开发模块即是第一实施例中的预设二次开发模块,第一内核接口函数即是第一实施例中的二次开发接口函数。
在数控系统二次开发方法执行之前,需要预先设置好与开发事件对应的函数,函数名可以通过某种预设的命名规则以及对应的事件类型来命名,某种预设的命名规则可以是开发事件对应的英文缩写或汉语拼音缩写,考虑到英文缩写可能会出现名字重复的现象,还可以通过增加字符后缀的方法,区分每一个函数,且当事件类型确定后,事件类型对应的用户处理函数的输入参数随即被确定,即被确定的参数作为输入参数,将目标函数名作为函数名的函数作为目标函数。
本实施例中数控系统内核接口还支持拓展和添加,当需要添加新的数控系统内核接口时,数控系统二次开发程序将接收到内核接口生成指令,本实施例中内核接口生成指令是添加数控系统内核接口开始的标志,首先,本实施例中的数控系统内核支持添加新的接口,其次,当需要添加新的数控系统内核接口时,数控系统二次开发程序将确定内核接口生成指令对应的目标内核接口,当目标内核接口被建立后,数控系统二次开发程序将获取预设函数库中的内核接口函数,并建立内核接口函数与内核接口的关联关系,并将内核接口函数存储至二次开发模块,以使内核接口与二次开发模块关联,可以理解的是,通过给每个数控系统内核接口设置标识号,可以在预设函数库中找到与目标内核接口对应的目标内核接口函数,并建立二者的关联关系。
在本实施例中通过生成用户处理函数以及二次开发模块,并建立用户处理函数,二次开发模块以及数控系统内核接口的相互关联关系,实现了通过开发事件和用户处理函数,修改数控系统内核数据,以完成数控系统内核二次开发的目的。
此外,参照图4,本发明实施例还提出一种数控系统二次开发装置,所述数控系统二次开发装置包括:
函数获取模块10,用于当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数;
内核事件确定模块20,用于根据所述用户处理函数的输入参数,确定所述用户处理函数对应的数控系统内核事件;
内核数据修改模块30,用于调用所述二次开发接口函数,对所述数控系统内核事件对应的内核数据进行修改,以完成数控系统的二次开发。
可选地,所述数控系统二次开发装置,还包括:
内核事件触发模块,用于当检测到目标数控系统内核事件对应的目标处理流程完成,且所述目标数控系统内核事件为激活状态时,触发所述目标数控系统内核事件;
所述内核事件确定模块20,包括:
函数调用模块,用于调用所述用户处理函数,将所述目标数控系统内核事件作为参数传入所述用户处理函数中的目标用户处理函数。
可选地,所述数控系统二次开发装置,还包括:
判断模块,用于判断所述二次开发模块的数量是否大于零;
参数输入模块,用于若所述二次开发模块的数量大于零,且存在被触发的数控系统内核事件,则调用所有二次开发模块中的用户处理函数,并将所述被触发的数控系统内核事件作为参数输入所有的用户处理函数。
可选地,所述数控系统二次开发装置,还包括:
事件获取模块,用于当检测到所述数控系统内核执行内核处理流程时,获取所述内核处理流程对应的内核处理事件;
激活模块,用于当接收到激活指令时,将所述激活指令对应的内核处理事件的状态更改为激活状态;
取消模块,用于当接收到取消指令时,将所述激活指令对应的内核处理事件的状态更改为取消状态。
可选地,所述函数获取模块10,包括:
查询单元,用于当二次开发模块加载完成后,查询预设函数名称集中目标函数名称对应的函数句柄,以获取所述二次开发模块中所述目标函数名称对应的用户处理函数。
可选地,所述函数获取模块10,还包括:
入口点函数获取单元,用于当二次开发模块加载完成后,获取所述二次开发模块中的入口点函数;
接口函数获取单元,用于执行所述入口点函数,获取数控系统内核中所有的二次开发接口函数。
可选地,所述数控系统二次开发装置,还包括:
开发模块生成模块,用于当接收到数控系统二次开发指令时,生成所述数控系统二次开发指令对应的二次开发模块;
存储模块,用于将所述二次开发模块的路径存入预设注册表或预设配置文件;
所述函数获取模块10,包括:
读取模块,用于当所述数控系统内核启动时,读取所述预设注册表或所述预设配置文件,获取所述二次开发模块的路径,以加载所述二次开发模块。
此外,本发明实施例还提出一种可读存储介质,所述可读存储介质上存储有数控系统二次开发程序,所述数控系统二次开发程序被处理器执行时实现上述实施例提供的数控系统二次开发方法中的操作。
上述各程序模块所执行的方法可参照本发明方法各个实施例,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序;术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的。可以根据实际的需要选择中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的数控系统二次开发方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种数控系统二次开发方法,其特征在于,所述数控系统二次开发方法应用于数控系统内核,所述数控系统二次开发方法包括以下步骤:
当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数,所述用户处理函数为数控系统内核开发事件对应的函数,所述用户处理函数的输入参数为开发事件的事件类型,为整型常量;
当检测到目标数控系统内核事件对应的目标处理流程完成,且所述目标数控系统内核事件为激活状态时,触发所述目标数控系统内核事件;
根据所述用户处理函数的输入参数,确定所述用户处理函数对应的数控系统内核事件,其中,调用所述用户处理函数,将所述目标数控系统内核事件作为参数传入所述用户处理函数中的目标用户处理函数;
调用所述二次开发接口函数,对所述数控系统内核事件对应的内核数据进行修改,以完成数控系统的二次开发。
2.如权利要求1所述的数控系统二次开发方法,其特征在于,所述当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数的步骤之后,包括:
判断所述二次开发模块的数量是否大于零;
若所述二次开发模块的数量大于零,且存在被触发的数控系统内核事件,则调用所有二次开发模块中的用户处理函数,并将所述被触发的数控系统内核事件作为参数输入所有的用户处理函数。
3.如权利要求1所述的数控系统二次开发方法,其特征在于,所述当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数的步骤之后,包括:
当检测到所述数控系统内核执行内核处理流程时,获取所述内核处理流程对应的内核处理事件;
当接收到激活指令时,将所述激活指令对应的内核处理事件的状态更改为激活状态;
当接收到取消指令时,将所述激活指令对应的内核处理事件的状态更改为取消状态。
4.如权利要求1所述的数控系统二次开发方法,其特征在于,所述当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数的步骤包括:
当二次开发模块加载完成后,查询预设函数名称集中目标函数名称对应的函数句柄,以获取所述二次开发模块中所述目标函数名称对应的用户处理函数。
5.如权利要求1所述的数控系统二次开发方法,其特征在于,所述当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数的步骤包括:
当二次开发模块加载完成后,获取所述二次开发模块中的入口点函数;
执行所述入口点函数,获取数控系统内核中所有的二次开发接口函数。
6.如权利要求1所述的数控系统二次开发方法,其特征在于,所述获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数的步骤之前,包括:
当接收到数控系统二次开发指令时,生成所述数控系统二次开发指令对应的二次开发模块;
将所述二次开发模块的路径存入预设注册表或预设配置文件;
所述当所述数控系统内核启动时,加载预设的二次开发模块的步骤包括:
当所述数控系统内核启动时,读取所述预设注册表或所述预设配置文件,获取所述二次开发模块的路径,以加载所述二次开发模块。
7.一种数控系统二次开发装置,其特征在于,所述数控系统二次开发装置包括:
函数获取模块,用于当所述数控系统内核启动时,加载预设的二次开发模块,并获取所述二次开发模块中的用户处理函数,和所述数控系统内核中的二次开发接口函数,所述用户处理函数为数控系统内核开发事件对应的函数,所述用户处理函数的输入参数为开发事件的事件类型,为整型常量;
内核事件确定模块,用于根据所述用户处理函数的输入参数,确定所述用户处理函数对应的数控系统内核事件,其中,调用所述用户处理函数,将目标数控系统内核事件作为参数传入所述用户处理函数中的目标用户处理函数;
内核数据修改模块,用于调用所述二次开发接口函数,对所述数控系统内核事件对应的内核数据进行修改,以完成数控系统的二次开发。
8.一种数控系统二次开发设备,其特征在于,所述数控系统二次开发设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数控系统二次开发程序,所述数控系统二次开发程序被所述处理器执行时实现如权利要求1至6中任一项所述的数控系统二次开发方法的步骤。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有数控系统二次开发程序,所述数控系统二次开发程序被处理器执行时实现如权利要求1至6中任一项所述的数控系统二次开发方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110071913.2A CN112859753B (zh) | 2021-01-19 | 2021-01-19 | 数控系统二次开发方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110071913.2A CN112859753B (zh) | 2021-01-19 | 2021-01-19 | 数控系统二次开发方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112859753A CN112859753A (zh) | 2021-05-28 |
CN112859753B true CN112859753B (zh) | 2022-03-25 |
Family
ID=76007440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110071913.2A Active CN112859753B (zh) | 2021-01-19 | 2021-01-19 | 数控系统二次开发方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112859753B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923335A (zh) * | 2010-08-10 | 2010-12-22 | 济南大学 | 基于内核平台、直接面向加工路径点的开放式数控系统 |
CN102346687A (zh) * | 2011-09-21 | 2012-02-08 | 南京航空航天大学 | 基于Windows驱动程序的实时系统 |
CN102354154A (zh) * | 2011-07-22 | 2012-02-15 | 江俊逢 | 一种开放式数控系统的实时内核芯片 |
CN102830654A (zh) * | 2012-09-12 | 2012-12-19 | 深圳华中数控有限公司 | 基于Android平台的开放式数控系统及其中进行二次开发的方法 |
CN103377070A (zh) * | 2012-04-12 | 2013-10-30 | 沈阳高精数控技术有限公司 | 一种现场总线接口抽象方法 |
CN103970559A (zh) * | 2013-02-05 | 2014-08-06 | 北京壹人壹本信息科技有限公司 | 一种基于Android系统的设备加载方法及装置 |
CN105045658A (zh) * | 2015-07-02 | 2015-11-11 | 西安电子科技大学 | 一种利用多核嵌入式dsp实现动态任务调度分发的方法 |
CN205139680U (zh) * | 2015-11-05 | 2016-04-06 | 薛志安 | 一种基于Windows平台的开放式数控系统 |
CN107390638A (zh) * | 2017-06-20 | 2017-11-24 | 深圳市台控自动化有限公司 | 一种机床加工方法、终端及数控机床 |
CN108549330A (zh) * | 2018-05-10 | 2018-09-18 | 湖南工学院 | 一种多轴联动嵌入式数控系统及其开发方法 |
CN110659085A (zh) * | 2019-09-27 | 2020-01-07 | 泉州华中科技大学智能制造研究院 | 一种Linux内核模块中有限数量函数重载的方法及装置 |
CN111443963A (zh) * | 2018-12-27 | 2020-07-24 | 沈阳高精数控智能技术股份有限公司 | 一种可重构式的数控系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100520650C (zh) * | 2005-10-17 | 2009-07-29 | 中国科学院沈阳计算技术研究所有限公司 | 数控机床模糊pid控制方法及实现装置 |
KR101468751B1 (ko) * | 2009-06-17 | 2014-12-04 | 두산인프라코어 주식회사 | 그래픽 기반의 사용자 인터페이스를 갖는 수치제어시스템 |
US8560110B2 (en) * | 2009-06-19 | 2013-10-15 | General Electric Company | Electroerosion control system and a dual mode control system |
KR101524874B1 (ko) * | 2009-08-21 | 2015-06-01 | 두산인프라코어 주식회사 | Cnc 공작기계의 atc 동작 정보 표시 방법 및 장치 |
CN109062145A (zh) * | 2018-08-13 | 2018-12-21 | 大古智能科技(上海)有限公司 | 基于wifi通信的数控机床运动控制卡 |
-
2021
- 2021-01-19 CN CN202110071913.2A patent/CN112859753B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923335A (zh) * | 2010-08-10 | 2010-12-22 | 济南大学 | 基于内核平台、直接面向加工路径点的开放式数控系统 |
CN102354154A (zh) * | 2011-07-22 | 2012-02-15 | 江俊逢 | 一种开放式数控系统的实时内核芯片 |
CN102346687A (zh) * | 2011-09-21 | 2012-02-08 | 南京航空航天大学 | 基于Windows驱动程序的实时系统 |
CN103377070A (zh) * | 2012-04-12 | 2013-10-30 | 沈阳高精数控技术有限公司 | 一种现场总线接口抽象方法 |
CN102830654A (zh) * | 2012-09-12 | 2012-12-19 | 深圳华中数控有限公司 | 基于Android平台的开放式数控系统及其中进行二次开发的方法 |
CN103970559A (zh) * | 2013-02-05 | 2014-08-06 | 北京壹人壹本信息科技有限公司 | 一种基于Android系统的设备加载方法及装置 |
CN105045658A (zh) * | 2015-07-02 | 2015-11-11 | 西安电子科技大学 | 一种利用多核嵌入式dsp实现动态任务调度分发的方法 |
CN205139680U (zh) * | 2015-11-05 | 2016-04-06 | 薛志安 | 一种基于Windows平台的开放式数控系统 |
CN107390638A (zh) * | 2017-06-20 | 2017-11-24 | 深圳市台控自动化有限公司 | 一种机床加工方法、终端及数控机床 |
CN108549330A (zh) * | 2018-05-10 | 2018-09-18 | 湖南工学院 | 一种多轴联动嵌入式数控系统及其开发方法 |
CN111443963A (zh) * | 2018-12-27 | 2020-07-24 | 沈阳高精数控智能技术股份有限公司 | 一种可重构式的数控系统 |
CN110659085A (zh) * | 2019-09-27 | 2020-01-07 | 泉州华中科技大学智能制造研究院 | 一种Linux内核模块中有限数量函数重载的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112859753A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6275868B1 (en) | Script Engine interface for multiple languages | |
CN100419684C (zh) | 为软件中的程序模块创建快捷方式及启动方法 | |
CN104915224A (zh) | 一种关联应用程序的处理方法及装置 | |
CN104111827A (zh) | 应用程序匹配方法及装置 | |
CN111078275A (zh) | 资源配置方法、装置、存储介质及服务器 | |
CN107341106B (zh) | 应用程序兼容性检测方法、开发终端及存储介质 | |
CN112859753B (zh) | 数控系统二次开发方法、装置、设备及可读存储介质 | |
CN108845800B (zh) | 一种组件扩展功能的实现方法、装置、设备及存储介质 | |
CN110852603B (zh) | 高吞吐量的风控数据处理方法、装置、设备及存储介质 | |
CN111857881A (zh) | 基于repo的manifest仓库加载方法、装置及存储介质 | |
CN113448607B (zh) | 用于固件升级的方法、装置和智能家电 | |
CN112231231B (zh) | 云端服务的调试方法、系统及装置 | |
CN111078571B (zh) | 模拟响应的测试方法、终端设备及计算机可读存储介质 | |
CN100469084C (zh) | 用户识别模块菜单界面的二维选择方法及其用户识别模块 | |
CN111488286A (zh) | 一种Android模块独立开发的方法及装置 | |
US20170302520A1 (en) | Server-based application software execution system | |
CN111782282B (zh) | 启动程序加载方法和装置、电子设备和存储介质 | |
CN113032010B (zh) | 命令的传输控制方法、终端及计算机可读存储介质 | |
CN114253441B (zh) | 目标功能的启用方法及装置、存储介质、电子装置 | |
CN113279154B (zh) | 缝纫设备的指令执行方法、装置、终端设备及介质 | |
CN113282349A (zh) | 配置对象的处理方法、装置、电子设备及可读存储介质 | |
CN116700785A (zh) | 应用环境切换方法、设备及存储介质 | |
CN111371861A (zh) | 一种请求操作方法及装置 | |
CN115373638A (zh) | 前端与后端的数据处理方法、装置、设备及存储介质 | |
CN114356227A (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 |