CN109542043A - 一种基于插件的数控***管理方法及装置 - Google Patents

一种基于插件的数控***管理方法及装置 Download PDF

Info

Publication number
CN109542043A
CN109542043A CN201811285737.7A CN201811285737A CN109542043A CN 109542043 A CN109542043 A CN 109542043A CN 201811285737 A CN201811285737 A CN 201811285737A CN 109542043 A CN109542043 A CN 109542043A
Authority
CN
China
Prior art keywords
plug
unit
extension
hash table
information
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
Application number
CN201811285737.7A
Other languages
English (en)
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.)
Wuhan Huazhong Numerical Control Co Ltd
Original Assignee
Wuhan Huazhong Numerical Control 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 Wuhan Huazhong Numerical Control Co Ltd filed Critical Wuhan Huazhong Numerical Control Co Ltd
Priority to CN201811285737.7A priority Critical patent/CN109542043A/zh
Publication of CN109542043A publication Critical patent/CN109542043A/zh
Pending legal-status Critical Current

Links

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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • 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/35349Display part, programmed locus and tool path, traject, dynamic locus

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种基于插件的数控***管理方法及装置,方法包括:遍历用于存储插件的插件目录,加载所述插件目录中插件的配置文件,其中,数控***的各功能模块均以插件的形式存在;针对所加载的每一配置文件进行以下处理:获取所述配置文件中的动态链接库文件名,加载具有该动态链接库文件名的动态链接库文件;执行所述动态链接库文件中的插件创建函数,以将所述配置文件中的插件信息加入内部信息管理哈希表中;给内部信息管理哈希表中的插件信息分配***资源;在获得***资源后,执行动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,完成对配置文件所属插件的管理。应用本发明实施例,提高了数控***的开放性和可扩展性。

Description

一种基于插件的数控***管理方法及装置
技术领域
本发明涉及数控机床制造领域,尤其涉及一种基于插件的数控***管理方法及装置。
背景技术
数控机床制造行业最为核心的是其所搭载的数控***,随着工业应用的发展,个性化和定制化的加工需求越来越多,使得数控***变得越来越复杂,为了使数控***具有更好的稳定性以及更丰富的功能,需要对数控***进行更好的管理。
目前,对于用户而言,数控***是封闭的,开放性和可扩展性不足,导致在面对用户个性化的定制需求,开发人员需要投入大量的时间和精力对原有数控***的代码进行大量改编,才能使数控***具有满足用户需求的新功能。
因此有必要设计一种新的数控***管理方法,以克服上述问题。
发明内容
本发明的目的在于克服现有技术之缺陷,提供了一种基于插件的数控***管理方法及装置,以提高数控***的开放性和可扩展性。
本发明是这样实现的:
第一方面,本发明提供一种基于插件的数控***管理方法,方法包括:
遍历用于存储插件的插件目录,加载插件目录中插件的配置文件,其中,数控***的各功能模块均以插件的形式存在;
针对所加载的每一配置文件进行以下处理:
获取配置文件中的动态链接库文件名,加载具有该动态链接库文件名的动态链接库文件;
执行动态链接库文件中的插件创建函数,以将配置文件中的插件信息加入内部信息管理哈希表中;给内部信息管理哈希表中的插件信息分配***资源;
在获得***资源后,执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,完成对配置文件所属插件的管理。
可选的,当插件信息包括扩展点信息时,
给内部信息管理哈希表中的插件信息分配***资源,包括:
将内部信息管理哈希表内扩展点信息所描述的扩展点所调用的扩展链接至该扩展点;
执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,包括:
执行动态链接库文件中的插件初始化函数,以查找符号定义哈希表得到已链接至扩展点的扩展的函数接口,将所得的函数接口加入至全局符号使用哈希表,并执行加入函数接口后的全局符号使用哈希表,以实现扩展的功能,完成对配置文件所属插件的管理;符号定义哈希表用于存储扩展的函数接口。
可选的,当插件信息包括扩展信息时,
给内部信息管理哈希表中的插件信息分配***资源,包括:
给内部信息管理哈希表中的插件信息分配存储资源;
执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,包括:
获取符号定义哈希表;符号定义哈希表用于存储扩展的函数接口;
按照所分配的存储资源,将扩展信息所描述扩展的函数接口加入至符号定义哈希表。
可选的,插件包括人机交互界面插件、数控软PLC插件、数控解释器插件以及数控插补模块插件。
可选的,人机交互界面插件包括用于管理显示控件的扩展点和用于管理页面的扩展点;数控软PLC插件包括用于管理指令表的扩展点;数控解释器插件包括用于解释执行代码的扩展点;数控插补模块插件包括用于实现进给控制算法的扩展点、用于实现前瞻过渡算法的扩展点信息、用于实现几何运动的扩展点、用于实现通道控制算法的扩展点和用于实现五轴控制算法的扩展点。
第二方面,本发明提供一种基于插件的数控***管理装置,装置包括:
加载模块,用于遍历用于存储插件的插件目录,加载插件目录中插件的配置文件,其中,数控***的各功能模块均以插件的形式存在;
管理模块,用于针对所加载的每一配置文件进行以下处理:获取配置文件中的动态链接库文件名,加载具有该动态链接库文件名的动态链接库文件;执行动态链接库文件中的插件创建函数,以将配置文件中的插件信息加入内部信息管理哈希表中;给内部信息管理哈希表中的插件信息分配***资源;在获得***资源后,执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,完成对配置文件所属插件的管理。
可选的,当插件信息包括扩展点信息时,
管理模块给内部信息管理哈希表中的插件信息分配***资源,具体为:
将内部信息管理哈希表内扩展点信息所描述的扩展点所调用的扩展链接至该扩展点;
管理模块执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,具体为:
执行动态链接库文件中的插件初始化函数,以查找符号定义哈希表得到已链接至扩展点的扩展的函数接口,将所得的函数接口加入至全局符号使用哈希表,并执行加入函数接口后的全局符号使用哈希表,以实现扩展的功能,完成对配置文件所属插件的管理;符号定义哈希表用于存储扩展的函数接口。
可选的,当插件信息包括扩展信息时,
管理模块给内部信息管理哈希表中的插件信息分配***资源,具体为:
给内部信息管理哈希表中的插件信息分配存储资源;
管理模块执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,具体为:
获取符号定义哈希表;符号定义哈希表用于存储扩展的函数接口;
按照所分配的存储资源,将扩展信息所描述扩展的函数接口加入至符号定义哈希表。
可选的,插件包括人机交互界面插件、数控软PLC插件、数控解释器插件以及数控插补模块插件。
可选的,人机交互界面插件包括用于管理显示控件的扩展点和用于管理页面的扩展点;数控软PLC插件包括用于管理指令表的扩展点;数控解释器插件包括用于解释执行代码的扩展点;数控插补模块插件包括用于实现进给控制算法的扩展点、用于实现前瞻过渡算法的扩展点信息、用于实现几何运动的扩展点、用于实现通道控制算法的扩展点和用于实现五轴控制算法的扩展点。
本发明具有以下有益效果:应用本发明实施例,将数控***中的功能模块及其子模块进行抽象和封装,并按照插件规范进行开发,得到各插件,并且由于插件之间的耦合度较低,具有易于加载和卸载的特点,故可以实现数控***功能软件的动态可裁剪和灵活扩展,使数控***具备良好的开放性和扩展性,便于为用户提供个性化的定制服务,实现了对数控***的灵活管理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的基于插件的数控***管理方法的一种流程示意图;
图2为本发明实施例提供的数控插补模块插件模型图;
图3为本发明实施例提供的基于插件的数控***管理装置的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
需要说明的是,本发明所提供的基于插件的数控***管理方法可以应用于电子设备,其中,在具体应用中,该电子设备可以为计算机、个人电脑、平板、手机等等,这都是合理的。
参见图1,本发明实施例提供一种基于插件的数控***管理方法,方法包括如下步骤:
S101、遍历用于存储插件的插件目录,加载所述插件目录中插件的配置文件,其中,数控***的各功能模块均以插件的形式存在;
插件是一种遵循某种规范的应用程序接口编写出来的程序,可以被应用程序调用,例如在数控***被启动时自动加载插件。插件包括配置文件和动态链接库文件,配置文件用于记录插件信息,插件信息可以包括扩展点信息和扩展信息中的至少一种。
扩展点信息用于描述扩展点,扩展点信息可以包括扩展点所属插件的属性信息、扩展点ID(标识)、扩展点名称以及扩展点调用的扩展的函数接口,从而通过调用函数接口可以调用扩展。扩展点ID用于唯一标识扩展点。扩展点调用的扩展的函数接口可以存储XSD文件中,XSD文件可以存储一个或多个函数接口插件框架会自动加载并解析XSD文件,形成扩展点的待调用函数接口集合。
插件的属性信息包括本插件的ID、版本、开发者、本插件所依赖的其他插件、本插件的动态链接库文件名、本插件的动态链接库导出符号,动态链接库文件名是动态链接库文件的名字,动态链接库文件用于记录实现插件功能的各函数,动态链接库导出符号用于记录动态链接库所导出函数的函数接口和位置,通过动态链接库导出符号可以快速的获知待调用的目标函数所在的动态链接库文件,进而通过加载该动态链接库文件来获得目标函数。
示例性的,扩展点信息可以用如下代码实现如下:
另外,一个扩展点可以调用一个或多个扩展,扩展点和该扩展点所调用的扩展可以在同一插件中,也可以在不同插件中,从而有利于数控***中功能的动态扩展和二次开发。例如,插件A包括扩展点A1,扩展点A1所调用的扩展包括A2和A3,A2和A3可以均在插件A中,也可以分别在插件B和插件C中。
扩展信息用于描述扩展,扩展信息可以包括扩展所属插件的属性信息、扩展名称、扩展的函数接口以及调用该扩展的扩展点的扩展点ID,扩展的函数接口为动态链接库导出符号中的函数接口,即动态链接库文件所包含函数的函数接口。函数接口可以是变量地址或函数地址。
示例性的,扩展信息可以用如下代码实现如下:
数控***主要包含HMI(Human Machine Interface,人机交互界面)、软PLC(Programmable Logic Controller,可编程逻辑控制器)、数控解释器、插补运动段这四个核心功能模块,每个核心功能模块还可以包括一个或多个子功能模块,可以利用面向对象的抽象封装方法,将数控***中各功能模块和各子功能模块按照一定的粒度进行抽象和封装,得到各插件,并按照插件规范进行开发,插件之间采用扩展和扩展点的方式进行协作交互,从而利用各插件构建一个完整的、可动态扩展和裁剪的数控***。
具体的,插件可以包括人机交互界面插件、数控软PLC插件、数控解释器插件以及数控插补模块插件。
人机交互界面的主要作用是提供数控***内部数据的显示和交互操作功能,由大量类型各异的显示控件和页面组合而成。在插件化设计过程中,人机交互界面插件可以包括两个扩展点,一个扩展点用于管理显示控件,另一个扩展点用于管理页面;各种具体的显示控件和页面均抽象为同一类型的子插件,在子插件中完成相关的功能,并封装成对应子插件的扩展,扩展点可以调用各扩展以完成相关的功能。
数控软PLC用于顺序执行一系列基本指令和功能指令,数控软PLC插件可以定义一个用于管理指令表的扩展点,指令表中的各种基本指令和功能指令在各扩展所在的子插件中设计完成,并以子插件的扩展的形式链接到指令表的扩展点上,以实现各扩展的功能。
数控解释器插件用于解释执行数控专用代码,数控专用代码包括G代码和M代码等,每个数控***制造厂商对G代码/M代码的指令功能定义均不同,采用插件技术能快速适配不同的客户需求。例如,在插件化设计过程中,将G代码设计为扩展点,并按照扩展点规范完成扩展的封装,在扩展中设计实现每个G代码的执行过程。
数控插补模块插件是数控***的核心控制单元,包括用于实现进给控制算法的扩展点(以下称为进给控制扩展点)、用于实现前瞻过渡算法(也称为前瞻算法或过渡算法)的扩展点信息(以下称为前瞻过渡扩展点)、用于实现几何运动的扩展点(以下称为几何运动扩展点)、用于实现通道控制算法的扩展点(以下称为通道控制扩展点)和用于实现五轴控制算法的扩展点(以下称为五轴控制扩展点)等扩展点。
示例性的,如图2所示的数控插补模块插件模型图,图中数控插补模块插件(也称数控***插补模块插件)包括插补运动段插件、进给控制插件、过渡算法插件、几何运动插件、五轴控制插件、加减速控制插件以及通道控制插件,插补运动段插件所调用的子插件包括进给控制插件、过渡算法插件、几何运动插件、五轴控制插件以及通道控制插件,进给控制插件所调用的子插件包括加减速控制插件,各插件中的plugin.xml表示该插件的配置文件,插件的扩展和扩展点的相关描述记录在该插件配置文件中,扩展点和该扩展点所调用的扩展通过带箭头的线段连接,线段的起始点所连接的为各扩展,线段的终止点所连接的为各扩展点,例如,进给控制插件包括FPM(每分钟进给)扩展、FPR(每转进给)扩展、回零控制扩展、G04(暂停)扩展以及加减速扩展点,进给控制插件通过加减速扩展点调用加减速控制插件的T型加减速扩展、S型加减速扩展和指数加减速扩展;插补运动段插件通过进给控制扩展点调用进给控制插件中的FPM扩展、FPR扩展、回零控制扩展和G04扩展。
可以采用前序遍历、中序遍历等遍历方式依次访问插件目录中的插件,并可以按照访问顺序依次加载各插件的配置文件。
将数控***的各功能模块封装成插件,可以降低数控***各软件功能模块间的耦合性,增强数控***的稳定性,提高***开发和测试效率,降低软件研发成本,由于插件可以快速的被加载和卸载,从而数控***具有的动态裁剪功能和扩展功能能力,大大提升了数控***的开放性和扩展性。
S102、针对所加载的每一配置文件进行以下处理:获取配置文件中的动态链接库文件名,加载具有该动态链接库文件名的动态链接库文件;执行动态链接库文件中的插件创建函数,以将配置文件中的插件信息加入内部信息管理哈希表中;给内部信息管理哈希表中的插件信息分配***资源;在获得***资源后,执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,完成对配置文件所属插件的管理。
每个动态链接库文件都可以对应一个动态链接库导出符号,通过动态链接库导出符号可以确定插件创建函数所在的位置,从而执行所述动态链接库文件中的插件创建函数,可以看出,当数控***需要调用插件创建函数时,需要先加载动态链接库文件,然后通过动态链接库文件对应的动态链接库导出符号取得插件创建函数的地址,最后进行调用动态链接库文件中的插件创建函数。这样的好处是数控***不需要在运行之初加载动态链接库文件中的所有代码,只有在需要某个函数的时候才从动态链接库文件中取出。另外,使用动态链接库文件还可以各插件的程序体积,便于插件的维护。
预先给数控***的每个核心功能模块创建与之对应的插件上下文模块,插件上下文模块提供插件注册和管理、扩展点及扩展的管理和符号注册调用等功能,主要维护三个哈希表的数据结构,分别为内部信息管理哈希表、符号定义哈希表和全局符号使用哈希表。一个完整的数控***软件可以具备多个插件上下文模块,并可以使用链表数据结构对各插件上下文模块进行管理。
内部信息管理哈希表用于管理插件信息,例如扩展点信息和/或扩展信息。符号定义哈希表用于采用全局存储方式存储扩展点所调用扩展的函数接口和/或扩展的函数接口,从而在需要调用某个扩展时,可以用符号定义搜索函数查找符号定义哈希表,获取待调用扩展的函数接口。全局符号使用哈希表用于利用引用计数的方法进行符号信息资源的管理。
当插件信息包括扩展点信息时,给内部信息管理哈希表中的插件信息分配***资源,包括:
将所述内部信息管理哈希表内扩展点信息所描述的扩展点所调用的扩展链接至该扩展点;
执行所述动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,具体为:
执行所述动态链接库文件中的插件初始化函数,以查找符号定义哈希表得到已链接至扩展点的扩展的函数接口,将所得的函数接口加入至全局符号使用哈希表,并执行加入函数接口后的全局符号使用哈希表,以实现扩展的功能,完成对配置文件所属插件的管理;所述符号定义哈希表用于存储扩展的函数接口。
示例性的,基于上述扩展点信息代码的示例,可以查找符号定义哈希表得到velctrl_func参数的值,从而获取该扩展点所调用的各扩展的函数接口,并将各扩展的函数接口加入到全局符号使用哈希表中,此后,插件可以直接调用子插件中扩展来实现该扩展提供的功能。
当所述插件信息包括扩展信息时,给内部信息管理哈希表中的插件信息分配***资源,包括:
给内部信息管理哈希表中的插件信息分配存储资源;
执行所述动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,具体为:
获取符号定义哈希表;所述符号定义哈希表用于存储扩展的函数接口;
按照所分配的存储资源,将所述扩展信息所描述扩展的函数接口加入至符号定义哈希表。
示例性的,基于上述扩展信息代码的示例,插件框架执行插件动态链接库文件中的插件初始化函数,对插件信息进行初始化:扩展利用符号定义函数对扩展的函数接口进行全局定义,也就是,把ncx_motion_velctrl_fpm加入符号定义哈希表中,以使符号定义哈希表对ncx_motion_velctrl_fpm进行全局存储。
应用本发明实施例提供的技术方案,将数控***中的功能模块及其子模块进行抽象和封装,并按照插件规范进行开发,得到各插件,并且插件之间可以采用扩展和扩展点的方式进行协作交互,实现数控***功能软件的动态可裁剪和灵活扩展,使数控***具备良好的开放性和扩展性,同时有利于让第三方参与到功能定制开发过程中来,便于为用户提供个性化的定制服务,实现了对数控***的灵活管理。
另一种实现方式中,当所述插件信息包括扩展信息时,给内部信息管理哈希表中的插件信息分配***资源,还可以为:
当获取到扩展调用指令时,通过内部信息管理哈希表确定所述扩展指令所指定的扩展和扩展点,将所述扩展调用指令所指定的扩展链接至所述扩展调用指令所指定的扩展点。
当插件信息包括扩展点信息和扩展信息时,给内部信息管理哈希表中的插件信息分配***资源,具体为:
将所述内部信息管理哈希表内扩展点信息所描述的扩展点所调用的扩展链接至该扩展点;
当获取到扩展调用指令时,通过内部信息管理哈希表确定所述扩展指令所指定的扩展和扩展点,将所述扩展调用指令所指定的扩展链接至所述扩展调用指令所指定的扩展点。
另一种实现方式中,执行所述动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,还可以为:
执行所述动态链接库文件中的插件初始化函数,以将已链接至扩展点的扩展的函数接口加入至全局符号使用哈希表,并执行加入函数接口后的全局符号使用哈希表,以实现扩展的功能,完成对配置文件所属插件的管理。
与上述的方法实施例相对应,本发明实施例还提供一种基于插件的数控***管理装置。
参见图3,图3为本发明实施例所提供的一种基于插件的数控***管理装置的结构示意图,装置包括:
加载模块301,用于遍历用于存储插件的插件目录,加载插件目录中插件的配置文件,其中,数控***的各功能模块均以插件的形式存在;
管理模块302,用于针对所加载的每一配置文件进行以下处理:获取配置文件中的动态链接库文件名,加载具有该动态链接库文件名的动态链接库文件;执行动态链接库文件中的插件创建函数,以将配置文件中的插件信息加入内部信息管理哈希表中;给内部信息管理哈希表中的插件信息分配***资源;在获得***资源后,执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,完成对配置文件所属插件的管理。
应用本发明实施例提供的技术方案,将数控***中的功能模块及其子模块进行抽象和封装,并按照插件规范进行开发,得到各插件,并且插件之间可以采用扩展和扩展点的方式进行协作交互,实现数控***功能软件的动态可裁剪和灵活扩展,使数控***具备良好的开放性和扩展性,同时有利于让第三方参与到功能定制开发过程中来,便于为用户提供个性化的定制服务,实现了对数控***的灵活管理。
可选的,当插件信息包括扩展点信息时,
管理模块给内部信息管理哈希表中的插件信息分配***资源,具体为:
将内部信息管理哈希表内扩展点信息所描述的扩展点所调用的扩展链接至该扩展点;
管理模块执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,具体为:
执行动态链接库文件中的插件初始化函数,以查找符号定义哈希表得到已链接至扩展点的扩展的函数接口,将所得的函数接口加入至全局符号使用哈希表,并执行加入函数接口后的全局符号使用哈希表,以实现扩展的功能,完成对配置文件所属插件的管理;符号定义哈希表用于存储扩展的函数接口。
可选的,当插件信息包括扩展信息时,
管理模块给内部信息管理哈希表中的插件信息分配***资源,具体为:
给内部信息管理哈希表中的插件信息分配存储资源;
管理模块执行动态链接库文件中的插件初始化函数,以对插件信息进行初始化,具体为:
获取符号定义哈希表;符号定义哈希表用于存储扩展的函数接口;
按照所分配的存储资源,将扩展信息所描述扩展的函数接口加入至符号定义哈希表。
可选的,插件包括人机交互界面插件、数控软PLC插件、数控解释器插件以及数控插补模块插件。
可选的,人机交互界面插件包括用于管理显示控件的扩展点和用于管理页面的扩展点;数控软PLC插件包括用于管理指令表的扩展点;数控解释器插件包括用于解释执行代码的扩展点;数控插补模块插件包括用于实现进给控制算法的扩展点、用于实现前瞻过渡算法的扩展点信息、用于实现几何运动的扩展点、用于实现通道控制算法的扩展点和用于实现五轴控制算法的扩展点。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于插件的数控***管理方法,其特征在于,所述方法包括:
遍历用于存储插件的插件目录,加载所述插件目录中插件的配置文件,其中,数控***的各功能模块均以插件的形式存在;
针对所加载的每一配置文件进行以下处理:
获取该配置文件中的动态链接库文件名,加载具有该动态链接库文件名的动态链接库文件;
执行所述动态链接库文件中的插件创建函数,以将所述配置文件中的插件信息加入内部信息管理哈希表中;给所述内部信息管理哈希表中的插件信息分配***资源;
在获得***资源后,执行所述动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,完成对该配置文件所属插件的管理。
2.根据权利要求1所述的方法,其特征在于,当插件信息包括扩展点信息时,
给所述内部信息管理哈希表中的插件信息分配***资源,包括:
将所述内部信息管理哈希表内扩展点信息所描述的扩展点所调用的扩展链接至该扩展点;
执行所述动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,包括:
执行所述动态链接库文件中的插件初始化函数,以查找符号定义哈希表得到已链接至扩展点的扩展的函数接口,将所得的函数接口加入至全局符号使用哈希表,并执行加入函数接口后的全局符号使用哈希表,以实现扩展的功能,完成对配置文件所属插件的管理;所述符号定义哈希表用于存储扩展的函数接口。
3.根据权利要求1所述的方法,其特征在于,当所述插件信息包括扩展信息时,
给所述内部信息管理哈希表中的插件信息分配***资源,包括:
给所述内部信息管理哈希表中的插件信息分配存储资源;
执行所述动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,包括:
获取符号定义哈希表;所述符号定义哈希表用于存储扩展的函数接口;
按照所分配的存储资源,将所述扩展信息所描述扩展的函数接口加入至符号定义哈希表。
4.根据权利要求1所述的方法,其特征在于,插件包括人机交互界面插件、数控软PLC插件、数控解释器插件以及数控插补模块插件。
5.根据权利要求4所述的方法,其特征在于,所述人机交互界面插件包括用于管理显示控件的扩展点和用于管理页面的扩展点;所述数控软PLC插件包括用于管理指令表的扩展点;所述数控解释器插件包括用于解释执行代码的扩展点;所述数控插补模块插件包括用于实现进给控制算法的扩展点、用于实现前瞻过渡算法的扩展点信息、用于实现几何运动的扩展点、用于实现通道控制算法的扩展点和用于实现五轴控制算法的扩展点。
6.一种基于插件的数控***管理装置,其特征在于,所述装置包括:
加载模块,用于遍历用于存储插件的插件目录,加载所述插件目录中插件的配置文件,其中,数控***的各功能模块均以插件的形式存在;
管理模块,用于针对所加载的每一配置文件进行以下处理:获取该配置文件中的动态链接库文件名,加载具有该动态链接库文件名的动态链接库文件;执行所述动态链接库文件中的插件创建函数,以将所述配置文件中的插件信息加入内部信息管理哈希表中;给所述内部信息管理哈希表中的插件信息分配***资源;在获得***资源后,执行所述动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,完成对该配置文件所属插件的管理。
7.根据权利要求6所述的装置,其特征在于,当插件信息包括扩展点信息时,
所述管理模块给所述内部信息管理哈希表中的插件信息分配***资源,具体为:
将所述内部信息管理哈希表内扩展点信息所描述的扩展点所调用的扩展链接至该扩展点;
所述管理模块执行所述动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,具体为:
执行所述动态链接库文件中的插件初始化函数,以查找符号定义哈希表得到已链接至扩展点的扩展的函数接口,将所得的函数接口加入至全局符号使用哈希表,并执行加入函数接口后的全局符号使用哈希表,以实现扩展的功能,完成对配置文件所属插件的管理;所述符号定义哈希表用于存储扩展的函数接口。
8.根据权利要求6所述的装置,其特征在于,当所述插件信息包括扩展信息时,
所述管理模块给所述内部信息管理哈希表中的插件信息分配***资源,具体为:
给所述内部信息管理哈希表中的插件信息分配存储资源;
所述管理模块执行所述动态链接库文件中的插件初始化函数,以对所述插件信息进行初始化,具体为:
获取符号定义哈希表;所述符号定义哈希表用于存储扩展的函数接口;
按照所分配的存储资源,将所述扩展信息所描述扩展的函数接口加入至符号定义哈希表。
9.根据权利要求6所述的装置,其特征在于,插件包括人机交互界面插件、数控软PLC插件、数控解释器插件以及数控插补模块插件。
10.根据权利要求9所述的装置,其特征在于,所述人机交互界面插件包括用于管理显示控件的扩展点和用于管理页面的扩展点;所述数控软PLC插件包括用于管理指令表的扩展点;所述数控解释器插件包括用于解释执行代码的扩展点;所述数控插补模块插件包括用于实现进给控制算法的扩展点、用于实现前瞻过渡算法的扩展点信息、用于实现几何运动的扩展点、用于实现通道控制算法的扩展点和用于实现五轴控制算法的扩展点。
CN201811285737.7A 2018-10-31 2018-10-31 一种基于插件的数控***管理方法及装置 Pending CN109542043A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811285737.7A CN109542043A (zh) 2018-10-31 2018-10-31 一种基于插件的数控***管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811285737.7A CN109542043A (zh) 2018-10-31 2018-10-31 一种基于插件的数控***管理方法及装置

Publications (1)

Publication Number Publication Date
CN109542043A true CN109542043A (zh) 2019-03-29

Family

ID=65845628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811285737.7A Pending CN109542043A (zh) 2018-10-31 2018-10-31 一种基于插件的数控***管理方法及装置

Country Status (1)

Country Link
CN (1) CN109542043A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321178A (zh) * 2019-06-28 2019-10-11 百度在线网络技术(北京)有限公司 附属应用端的启动处理方法、装置、设备及存储介质
CN113204377A (zh) * 2020-01-31 2021-08-03 华为技术有限公司 一种动态链接库的加载方法及装置
CN114691235A (zh) * 2022-03-22 2022-07-01 上海智殷自动化科技有限公司 一种支持插件间数据自由交互的方法
CN114721736A (zh) * 2022-03-07 2022-07-08 华中科技大学 一种基于软plc的数据管理方法和***

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1924800A (zh) * 2005-09-02 2007-03-07 北京灵图软件技术有限公司 用于二次开发平台的基于控件的插件管理***及方法
CN101221424A (zh) * 2008-01-04 2008-07-16 华南理工大学 基于领域建模的数控***代码自动生成方法
CN102033743A (zh) * 2010-09-02 2011-04-27 西安赛斐软件科技有限公司 一种应用插件扩充模型驱动开发能力的***及其方法
CN102156663A (zh) * 2011-03-22 2011-08-17 北京书生国际信息技术有限公司 一种实现插件的方法和装置
CN102707669A (zh) * 2009-11-27 2012-10-03 济南铸造锻压机械研究所有限公司 用于汽车纵梁冲孔加工的cam***的构建方法
CN102830654A (zh) * 2012-09-12 2012-12-19 深圳华中数控有限公司 基于Android平台的开放式数控***及其中进行二次开发的方法
CN104166581A (zh) * 2014-02-19 2014-11-26 湖州师范学院 一种面向增量制造设备的虚拟化方法
CN104331024A (zh) * 2014-10-16 2015-02-04 大族激光科技产业集团股份有限公司 自动控制方法及基于pc机的开放式数控***
CN104424002A (zh) * 2013-09-10 2015-03-18 中国科学院声学研究所 一种基于插件机制的动态加载组件方法和***
CN105183458A (zh) * 2015-08-14 2015-12-23 深圳联友科技有限公司 一种软件平台开发方法及装置
CN105912339A (zh) * 2016-04-15 2016-08-31 华中科技大学 一种数控***中应用的开发与集成方法及***
CN106371864A (zh) * 2016-08-23 2017-02-01 上海创景计算机***有限公司 快速部署插件架构方法
CN106814701A (zh) * 2016-12-26 2017-06-09 武汉华中数控股份有限公司 管控数控平台***及其构建方法
CN107122216A (zh) * 2017-05-19 2017-09-01 北京计算机技术及应用研究所 一种嵌入式实时操作***动态加载方法

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1924800A (zh) * 2005-09-02 2007-03-07 北京灵图软件技术有限公司 用于二次开发平台的基于控件的插件管理***及方法
CN101221424A (zh) * 2008-01-04 2008-07-16 华南理工大学 基于领域建模的数控***代码自动生成方法
CN102707669A (zh) * 2009-11-27 2012-10-03 济南铸造锻压机械研究所有限公司 用于汽车纵梁冲孔加工的cam***的构建方法
CN102033743A (zh) * 2010-09-02 2011-04-27 西安赛斐软件科技有限公司 一种应用插件扩充模型驱动开发能力的***及其方法
CN102156663A (zh) * 2011-03-22 2011-08-17 北京书生国际信息技术有限公司 一种实现插件的方法和装置
CN102830654A (zh) * 2012-09-12 2012-12-19 深圳华中数控有限公司 基于Android平台的开放式数控***及其中进行二次开发的方法
CN104424002A (zh) * 2013-09-10 2015-03-18 中国科学院声学研究所 一种基于插件机制的动态加载组件方法和***
CN104166581A (zh) * 2014-02-19 2014-11-26 湖州师范学院 一种面向增量制造设备的虚拟化方法
CN104331024A (zh) * 2014-10-16 2015-02-04 大族激光科技产业集团股份有限公司 自动控制方法及基于pc机的开放式数控***
CN105183458A (zh) * 2015-08-14 2015-12-23 深圳联友科技有限公司 一种软件平台开发方法及装置
CN105912339A (zh) * 2016-04-15 2016-08-31 华中科技大学 一种数控***中应用的开发与集成方法及***
CN106371864A (zh) * 2016-08-23 2017-02-01 上海创景计算机***有限公司 快速部署插件架构方法
CN106814701A (zh) * 2016-12-26 2017-06-09 武汉华中数控股份有限公司 管控数控平台***及其构建方法
CN107122216A (zh) * 2017-05-19 2017-09-01 北京计算机技术及应用研究所 一种嵌入式实时操作***动态加载方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
潘松: "Miranda插件框架的研究与应用", 《万方学位论文数据库》 *
邢丹: "插件在Nessus中的实现", 《装备指挥技术学院学报》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321178A (zh) * 2019-06-28 2019-10-11 百度在线网络技术(北京)有限公司 附属应用端的启动处理方法、装置、设备及存储介质
CN113204377A (zh) * 2020-01-31 2021-08-03 华为技术有限公司 一种动态链接库的加载方法及装置
CN113204377B (zh) * 2020-01-31 2022-12-06 华为技术有限公司 一种动态链接库的加载方法及装置
US11886222B1 (en) 2020-01-31 2024-01-30 Huawei Technologies Co., Ltd. Dynamic link library loading method and apparatus
CN114721736A (zh) * 2022-03-07 2022-07-08 华中科技大学 一种基于软plc的数据管理方法和***
CN114721736B (zh) * 2022-03-07 2024-02-02 华中科技大学 一种基于软plc的数据管理方法和***
CN114691235A (zh) * 2022-03-22 2022-07-01 上海智殷自动化科技有限公司 一种支持插件间数据自由交互的方法
CN114691235B (zh) * 2022-03-22 2024-03-22 上海智殷自动化科技有限公司 一种支持插件间数据自由交互的方法

Similar Documents

Publication Publication Date Title
CN107220064B (zh) 一种数控***界面组态开发方法
CN109542043A (zh) 一种基于插件的数控***管理方法及装置
CN103336813B (zh) 一种基于中间件架构的物联网数据集成管理方案
US10222951B2 (en) Modeling system for graphic user interface
CN109597814B (zh) 一种后台管理信息***的在线快速交付***
Drath et al. AutomationML-the glue for seamless automation engineering
CN100481001C (zh) 界面自动生成方法和界面自动生成***
CN106302008A (zh) 数据更新方法和装置
JPH10187449A (ja) オブジェクト指向プログラミング装置、オブジェクト指向プログラミング支援装置、コンポーネント作成装置、オブジェクト指向プログラム記憶媒体、オブジェクト指向プログラミング用プログラム記憶媒体、コンポーネント記憶媒体、およびオブジェクト間ネットワーク表示方法
KR20040096577A (ko) 실시간 시스템 제어용 컴포넌트 모델
CN104657149A (zh) 一种存储***的管理模块的软件框架实现方法
CN113298503A (zh) 一种面向政务的工作流管理***及其分库分表方法
CN103327080A (zh) 创建物联网控制***的方法及装置
CN105677303A (zh) 一种组态软件画面编辑工具的设计方法
CN109032590A (zh) 一种可视化开发环境的配置方法、装置、终端及存储介质
CN110705891A (zh) 一种基于高可配可变更的数据处理方法
CN111857718A (zh) 列表的编辑方法、装置、设备及存储介质
CN103123660A (zh) 一种对软硬件***cad图形化建模的方法
CN108234299A (zh) 基于模型的可配置协议数据网关及网关的信息处理方法
CN108134812A (zh) 数据处理方法和装置
CN109839910A (zh) 控制装置、控制方法以及计算机可读存储介质
CN109937404A (zh) 程序模块之间的实时数据交换
US7706898B2 (en) Use of variables in a number of automation systems
CN106814696B (zh) 一种数控***人机界面二次开发平台***及其实现方法
CN112035466A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190329