1.本发明涉及数控系统架构领域,特别是涉及用于构成数控系统的软件架构和硬件架构。
背景技术:2.目前市场上的数控系统主要都面向加工过程,基于g、m代码编程,大都参考iso6983标准进行实现,指令形式抽象、扩展性差,不仅仅对操作编程有着极高的学习要求,且本身限制颇多。随着产业和技术的不断发展,数控技术从传统的应用领域逐渐扩展到各种专用机床和其他机械设备,数控系统的应用领域也越来越广泛,出现了各种结构、面向各种行业的专用设备,这种面向加工过程功能固化的系统设计缺陷日益凸显。面对越来越多新兴制造场景和应用需求,当前的数控技术已经渐渐难以满足行业多元化和多层次应用需求,数控系统的开放化、复合化、智能化和网络化诉求已经成为行业发展的新痛点。
3.行业内一直在尝试寻找一种新的方式来驱动和操作数控机床,并提出了很多方法,类似step-nc、开放式数控系统等概念。同时行业内也出现了很多专机,扩展了很多专用功能来方便特定行业的用户使用。但是上述概念和系统,其设计常常在易用性、通用性和专用性之间艰难平衡和取舍,除了开放式数控系统之外,发展均不理想。且其中的开放式数控系统,虽名曰开放,但是几乎所有的数控系统厂家均自成体系,依赖专用硬件,向用户提供封闭的整体解决方案,除了能够替换部分类似主轴电机、驱动等部件外,系统的开放基本有限,用户对于系统的功能和配置也无法自由定制。
技术实现要素:4.鉴于以上所述现有技术的缺点,本发明的目的在于提供用于构成数控系统的软件架构和硬件架构,用于解决现有技术中的以上问题。
5.为实现上述目的及其他相关目的,本发明提供一种用于构成数控系统的软件架构,依次包括:内核层、设备抽象层、基础核心层、服务抽象层及应用层;其中,所述内核层用于为所述软件架构提供基础操作系统和任务调度功能;所述设备抽象层用于抽象各类外部硬件设备接口并解耦所述内核层及上层;所述上层包括所述基础核心层、所述服务抽象层及所述应用层;所述基础核心层用于实现数控系统的核心业务功能;所述服务抽象层用于将底层通过抽象服务的形式向所述应用层提供各类接口,与所述应用层解耦;所述底层包括所述内核层、所述设备抽象层及所述基础核心层;所述应用层包括应用管理框架和具体应用;所述应用管理框架为数控系统的开发和运行提供基础,以供所述应用层实现应用驱动。
6.于本发明一实施例中,所述内核层包括:实时内核模块、linux内核模块、设备驱动模块,以及接口设备驱动程序/总线协议栈;其中,所述实时内核用于实现数控系统的运动控制任务的周期性实时调度;所述linux内核用于处理数控系统的非实时任务并提供linux服务;所述设备驱动用于基于所述linux内核实现各类非实时外部设备驱动;所述接口设备
驱动程序/总线协议栈用于基于所述实时内核实现各类有实时性要求的接口设备驱动或总线协议栈,完成上层应用与当前设备的交互。
7.于本发明一实施例中,所述基础核心层包括:实时任务管理框架、plc运行时框架及cnc运行时框架;其中,所述实时任务管理框架用于数控系统运动控制核心功能的任务管理和调度管理;以及,抽象所述实时内核的接口,将其与所述上层实现解耦;所述plc运行时框架包括:plc抽象接口、plc核心、功能块管理器及通讯接口;所述plc抽象接口用于对交互接口进行抽象,解耦所述plc核心以实现所述plc核心的可替换功能;所述plc核心用于实现plc的核心功能;所述功能块管理器用于管理、加载用户自定义的功能块;所述通讯接口用于plc开发环境与plc运行环境的交互;所述cnc运行时框架包括:cnc核心库、插补通道、辅助通道、实时模块管理器、位置环模块、cnc逻辑指令处理模块;所述cnc核心库用于提供可被调用的各类运动控制算法;所述插补通道用于根据输入的nc代码处理多轴联动的运动指令及轨迹规划;所述辅助通道用于控制用于根据输入的nc代码控制和操作cnc中各类无需联动插补的辅助轴;所述实时模块管理器用于管理所述cnc运行时框架中的子模块;所述位置环模块用于处理各轴的位置环控制;所述cnc逻辑指令处理模块用于处理cnc指令中非运动的逻辑指令。
8.于本发明一实施例中,所述插补通道和所述辅助通道分别分成多个通道,每个通道独立工作或各通道通过调度协同工作;所述插补通道内包括以下模块:译码模块,用于将nc代码翻译成内部指令格式;刀补模块,用于处理nc代码中的刀具半径补偿;速度规划模块,用于对nc代码生成的运动指令进行速度规划,生成位置指令;多轴插补模块,用于将速度规划生成的位置指令处理成位置细分指令;误差补偿模块,用于对发出的位置细分指令进行误差补偿。
9.于本发明一实施例中,所述服务抽象层采用共享内存、消息队列及远程调用实现对服务的抽象,实现各类同步或异步的服务抽象接口。
10.于本发明一实施例中,所述应用管理框架包括标准模块及用户自定义模块;其中,所述标准模块包括:插件管理、桌面管理、配置管理、消息管理、服务管理、包管理、参数管理、任务管理、信号管理、窗口管理、日志管理、命令管理、权限管理、脚本管理及授权管理中的至少一种。
11.为实现上述目的及其他相关目的,本发明提供一种电子设备,包括所述的用于构成数控系统的软件架构。
12.为实现上述目的及其他相关目的,本发明提供一种用于构成数控系统的硬件架构,包括:核心层,即所述的电子设备;设备接入层,与所述电子设备连接,包括用于与外部设备连接的各类硬件接口;设备层,与所述设备接入层连接,包括通过对应的硬件接口连接所述电子设备的外部设备。
13.于本发明一实施例中,所述硬件接口包括:pc接口、现场总线接口、网关接口中的至少一种。
14.于本发明一实施例中,所述外部设备包括:伺服、i/o、操作面板、传感器及rfid中的至少一种。
15.如上所述,本发明的用于构成数控系统的软件架构和硬件架构,具有以下有益效果:
16.1、本发明提供了一种统一的开放架构,解决最基本的数控系统可重构和可扩展问题,允许来自不同厂商的软硬件模块在同一平台上协调运行,不再局限于市场上常见的数控系统构成形式,用户可以自由调整和修改构成数控系统的软硬件模块,根据应用需求实现系统的快速重构和扩展。
17.2、本发明所提出的架构提供了一种更具弹性的系统构建和应用方式:
18.(1)通过实时模块管理器,支持实时空间的应用模块动态扩展和加载;
19.(2)通过应用管理框架,支持非实时空间的应用模块动态扩展和加载;
20.注:本领域技术人员应当知晓,现有技术中,在实时操作系统下,所有的实时任务运行在实时空间,所有的非实时任务运行在非实时空间。这是一个抽象概念上的空间,而非物理空间。简单说就是不同的程序任务空间,相互分隔,有不同属性。
21.(3)通过plc抽象接口及cnc抽象接口设计结合实时模块管理器,支持cnc运行时核心模块化替换,支持plc运行时核心模块化替换;
22.(4)通过设备抽象层支持多种总线协议栈模块化替换或并行运行;
23.(5)通过应用管理框架及服务抽象层设计,支持多种工业网络通讯协议模块化替换或并行运行。
24.3、本发明通过开放的服务抽象层和实时任务管理框架提供了一种应用间通讯的接口架构,应用模块之间可以相互调用,协同工作,支持相互独立的应用之间协同工作:
25.(1)通过实时任务管理框架解决实时空间内的应用模块间通讯;
26.(2)通过应用管理框架解决非实时空间内的应用模块间交互和通讯;
27.(3)通过实时任务管理框架中的系统调用接口实现实时空间与非实时空间应用模块之间的相互通讯。
28.4、本发明通过开放的硬件架构和设备抽象层提供了一种各类智能化应用场景所需的可弹性扩展的传感器等外设集成技术框架,支持外部传感器等外设接入的持续扩展。
29.5、本发明通过开放的应用层和服务抽象层提供了一种可弹性扩展各类网络通讯协议的技术框架,支持在网络化需求中各类协议接入。
30.6、本发明架构在设计中充分剥离对硬件的依赖,将数控系统最复杂最多变的主要核心功能全部通过可快速重构的软件技术实现。大大扩展了用户的硬件选择范围,降低对专用硬件的依赖。基于此特性,用户可根据应用需求选择各种性能的开放式硬件平台。解决系统在应用规模扩张时伴随的类似内存、算力等硬件资源配套升级问题。
31.7、本发明架构通过服务抽象层及应用层的设计,提供一种面向不同技术能力的多层次开发框架。用户可以基于服务抽象层进行底层开发,也可以基于应用层进行快速的应用开发。解决不同技术能力的开发者所需面对的数控系统开发难题。便于用户快速定制、快速开发。
32.8、本发明通过授权保护框架的设计,提供了满足商业盈利需求的授权分发和保护模型,解决数控系统和应用app的商业化问题,确保开发者知识产权受到严密保护,数控系统平台可持续发展。
附图说明
33.图1显示为本发明一实施例中的用于构成数控系统的硬件架构的示意图。
34.图2显示为本发明一实施例中的用于构成数控系统的软件架构的示意图。
35.图3显示为本发明一实施例中的设备抽象层的接口架构示意图。
36.图4显示为现有技术中的实时任务管理框架的示意图。
37.图5显示为本发明一实施例中的plc运行时框架的示意图。
38.图6显示为本发明一实施例中的cnc运行时框架的示意图。
39.图7显示为本发明一实施例中的cnc指令处理过程的示意图。
40.图8显示为本发明一实施例中的服务抽象层的示意图。
41.图9显示为本发明一实施例中的应用层的示意图。
42.图10显示为本发明一实施例中的授权保护框架的工作流程图。
具体实施方式
43.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
44.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
45.请参阅图1,本技术的总体架构分成软件和硬件两个部分。在总体架构设计中,软件部分运行在硬件架构之上,模块化的硬件架构作为整体架构的基础。同时尽可能对硬件部分进行抽象,通过设备接口层的设计实现对各种不同厂家硬件模块的支持。图1中仅对软件架构的关键分层进行表示,软件架构的详细设计请见图2。
46.如图1所示,整个硬件架构分成三层,核心层、设备接入层和设备层。
47.核心层
48.核心层即整个架构最关键的运行核心,实现最主要的业务功能,一般情况下就是采用pc(personal computer,个人计算机)平台实现。本技术架构中的硬件采用基于pc的硬件架构,pc平台作为整个架构的核心载体,运行全软件式的数控系统。本技术的软件架构运行于核心层之上。
49.设备接入层
50.设备接入层用于扩展类似现场总线、网关等各类现场接口。在实现过程中一般都会实现一个能够满足数控系统实时控制要求的现场总线接口,也可以通过pcie接口扩展实现传统的模拟量或者脉冲式输入输出控制。同时,硬件架构中的设备接入层完全对应软件架构中的设备抽象层,通过软件和硬件的双重设计,确保对各类硬件的抽象和兼容。
51.设备层
52.设备层包含伺服、i/o、操作面板、传感器等具体执行设备,通过现场总线、网关等转接伺服、i/o等专用设备,实现对具体数控系统执行单元的动作输出与反馈采集。由于设备接入层的存在,通讯协议可以在设备接入层获得兼容,在数控系统需要接入不同协议设
备的场景下,只需要扩展设备接入层,就可以使得各个不同品牌厂家的伺服、i/o等终端设备实现接入。同时,该设备接入层通过与软件架构中的设备抽象层互动,不仅仅在硬件上能够实现和支持多个现场总线协议的接口共存,还能够在软件层面实现多个现场总线协议的协同工作,实现不同协议设备之间的同步和协同,解决开放式数控系统中硬件兼容的关键问题。
53.本技术的软件架构如图2所示。在前述对硬件架构的介绍中,已经明确本技术架构基于pc架构,本技术架构的软件部分运行在pc平台之上。事实上,为了让整个架构更加通用、易于裁剪和扩展,本技术在硬件架构的设计和实现上更倾向于选用通用的设备,pc平台的选用就是基于这个出发点。本技术将更多复杂和多变的功能模块通过软件实现,这对于软件架构的设计提出了非常高的要求。图1中已经简单列出了本技术软件架构分层结构,共分成五个层次,分别是内核层、设备抽象层、基础核心层、服务抽象层和应用层。其中各层的介绍和详细设计如下:
54.内核层
55.如图2所示,内核层优选地由实时操作系统和linux内核及相关内核模块构成,为整个软件架构提供最基础的操作系统和实时功能。由于数控系统对实时性的需求,整个数控的核心部分必须构建在一个足够可靠的实时操作系统之上,这是区别于传统pc平台软件架构的关键点,需要满足数控系统实时性的要求。内核层包含的模块如下:
56.1、实时内核:一个具有高优先级的微内核,是数控系统的软件基础,实现数控软件中的运动控制任务的周期性实时调度,要求实时内核具有高实时性、时间确定性及高可靠性;
57.2、linux kernel:低优先级的linux操作系统内核,用于处理数控系统软件架构中非实时的任务,提供linux的各种服务,具备安全加固等功能;
58.3、设备驱动:基于linux内核及实现各类非实时pc外部设备驱动;
59.4、接口设备驱动程序或总线协议栈:基于实时内核实现各类有实时性要求的接口设备驱动或总线协议栈,用于上层应用与此类设备的交互。用户可根据需求进行定制。
60.设备抽象层
61.如图3所示,设备抽象层与硬件架构中的设备接入层遥相呼应,在软件架构中为上层软件提供对外部硬件设备的输入输出交互。本技术通过设备抽象,剥离了设备抽象层之上对于内核层设备驱动程序的直接依赖,减少上层模块对底层的耦合,让整个架构更加灵活。
62.设备抽象层通过图3这种依赖倒置设计,隔离了上层应用与底层驱动的耦合关联,上层架构及接口实现均依赖于设备抽象接口,而不是传统的上层架构依赖接口实现,这种方式让整个架构可以实现更加抽象、灵活的设计,有利于深度的重构和复用实现。接口实现是指用设备的抽象接口实现对一个设备的支持。
63.基础核心层
64.如图2所示,基础核心层是数控系统基础核心功能的实现部分,实现数控系统的核心业务功能,主要包含实时任务管理框架、plc(programmable logic controller,可编程逻辑控制器)运行时框架和cnc(computerized numerical control,数控系统)运行时框架。
65.1、实时任务管理框架:
66.实时任务管理框架承担基础核心层所有运动控制核心功能的任务管理和调度管理,包括开发者新增的实时功能模块任务管理,对整个架构的有序运行起到了非常关键的作用。
67.如图4所示,实时任务管理框架基于实时内核的用户态实时任务调度,通过操作系统的系统调用接口在用户态实现任务的实时特性。用户态是linux系统的一种标准称呼,linux系统分为内核态和用户态,或者称为内核空间和用户空间。用户态就是运行在linux内核之上的用户程序空间。同时基于实时任务管理框架,对任务的启动顺序、调度顺序、任务间的信号唤醒进行有效管理,通过实时任务管理框架对各任务的调度安排,避免了整个架构进程/线程冲突的发生,通过明确的资源访问时间划分来减少进程/线程间数据交换的竞争问题。
68.实时任务管理框架还承担了实时内核接口抽象的职能,可以通过实时任务管理框架对具体的实时内核进行抽象和隔离,让上层实时应用与具体的实时内核接口之间解耦,类似设备抽象层的接口架构设计。
69.2、plc运行时框架:
70.如图5所示,plc运行时框架基于iec61131-3标准,依托现代计算机软硬件资源、现场总线技术,以及网络通信技术,通过软件来实现传统plc控制功能。由于是软件实现,所以常常被称为softplc。一般softplc系统由两部分组成,plc开发系统和plc运行时系统,plc开发系统与plc运行时系统采用客户端/服务器模式,即plc开发系统作为客户端通过标准接口访问plc运行时系统,完成plc程序下载、运行状态信息读取等操作。
71.本技术主要聚焦plc运行时框架,如图5所示,plc运行时框架主要由plc抽象接口、plc核心、功能块管理器和通信模块构成。其中,
72.●
plc抽象接口:参考iec61131的通用模型标准对plc的主要交互接口进行抽象,以实现plc核心的依赖解耦,实现plc核心的可替换功能。这一点也是本技术架构设计与其他cnc架构中关于plc设计部分的重要区别之一。
73.●
plc核心:实现plc的核心功能,同样参考iec61131的通用模型设计,包含控制序列部分、配置部分和实例相关初始化部分。控制序列包括采用iec61131标准程序设计语言编写的程序和功能块等。配置部分则由配置、资源、任务、全局变量和访问路径组成。实例相关的初始化部分主要负责将编写好的plc程序下装到plc系统中运行。用户也可以根据实际需要进行定制。
74.●
功能块管理器:管理用户自定义的功能块,允许用户自定义功能块及功能块加载运行,允许用户灵活地对plc进行功能块扩展,并且结合下文将提到的授权保护框架对用户自定义的功能块提供授权保护等商业化功能,也是本技术架构中的重要设计之一。
75.●
通讯接口:主要用于plc开发环境与plc运行环境的交互,这里并没有做特殊设计,主要取决于具体的plc运行环境和开发环境实现。用户可以根据实际需要进行定制。plc运行时与外界的参数传递、日志消息等其他交互通过本技术架构的统一抽象设计予以实现,将在下文介绍。
76.3、cnc运行时框架:
77.如图6所示,cnc运行时框架是整个架构中的核心业务部分,实现数控系统运动控
制相关的核心功能,与plc运行时框架共同构成一个最基础的数控系统核心架构。
78.cnc运行时框架主要由cnc核心库、插补通道、辅助通道、实时模块管理器、cnc逻辑指令处理模块、位置环模块构成,同时各模块均遵循开放和抽象原则,向上提供cnc运行时框架对外的各类抽象接口,以便于建立服务及交互访问。同时cnc内部也通过cnc抽象接口实现相互调用,且通过cnc抽象接口完成cnc模块的解耦,实现cnc运行时核心的可替换功能。其中,
79.●
cnc核心库:提供各种通用的轨迹处理、速度规划等通用算法,上层应用均可以调用相应处理实现具体的处理过程。
80.●
插补通道:是cnc运行时框架中最重要的部分,用于处理多轴联动的运动指令处理及轨迹规划功能。插补通道可以分成若干个通道,每个通道可以独立工作也可以协同工作,也可以通过整体调度。每个插补通道内包含以下模块:
81.译码:译码模块,将nc代码翻译成内部指令格式;
82.刀补:刀补模块,处理nc代码中的刀具半径补偿;
83.速度规划:速度规划模块,对nc代码生成的运动指令进行速度规划,生成位置指令;
84.多轴插补:多轴插补模块,将速度规划生成的位置指令处理成位置细分指令;
85.误差补偿:误差补偿模块,对发出的位置细分指令进行误差补偿。
86.图7说明了插补通道内的指令处理过程:每个通道都可以接受nc代码输入,通过译码模块、刀补模块(统一简称译码和刀补模块)处理成内部指令格式,译码和刀补模块将指令分成三种类型,一种是译码指令,直接在译码和刀补模块中执行。第二种是cnc逻辑指令,通过cnc逻辑指令处理模块再分成逻辑指令、i/o指令和plc指令,其中逻辑指令直接在cnc逻辑指令处理模块中执行,i/o指令经过同步后发送给下层i/o执行,plc指令发送给plc运行时执行。第三种是运动指令,通过速度规划模块、多轴插补模块及误差补偿模块处理成位置细分指令,经过同步后发送给位置环执行。上述处理生成的i/o指令、plc指令及位置细分指令通过同步处理,最终发送给下层执行。
87.●
辅助通道:通常用于控制和操作cnc中各类无需联动插补的辅助轴,用于辅助机械手等控制,其结构与插补通道基本类似,可以分为若干个通道,每个通道可以独立工作,也可以协同工作。通道内的轴可以通过nc代码或者plc调用实现轨迹运动。每个通道也具备译码(一般会共用插补通道的译码模块)、速度规划、单轴的插补及误差补偿模块,最终同样输出各辅助轴的位置细分指令,并下发到位置环进行处理。
88.●
实时模块管理器:管理cnc运行时框架中的子模块,并允许用户替换cnc运行时框架中各细节模块(如插补通道、辅助通道),通过对cnc运行时框架中各模块的抽象和调度协调,用户可以切换不同算法的处理模块便于升级和重构。以译码模块为例,基于此架构设计,用户可以选择iso指令格式或者din指令格式的译码模块,实现不同的指令处理。这一点也是本技术架构中非常重要的设计之一,与传统cnc架构有着显著的区别。
89.●
位置环模块:处理每个轴的位置环控制,将上层算法规划的位置细分指令处理为速度指令通过再下层的设备抽象层转发给具体的驱动器实现位置控制。辅助通道与插补通道共享同一个位置环处理模块,且可以通过在线配置灵活切换各轴的操作模块,实际的物理轴可以在插补轴和辅助轴之间动态灵活切换。
90.●
cnc逻辑指令处理模块:处理cnc指令中非运动的逻辑指令,其中cnc内部的逻辑指令直接调用cnc抽象接口执行,其余外部指令拆分为i/o指令及plc指令,i/o指令即可以通过cnc固定逻辑进行i/o直接输出操作的指令如操作面板按钮动作等,plc指令是需要转发给plc进行逻辑处理之后再输出到实际i/o进行执行的指令,如换刀等指令。通过设备抽象层的处理和转发,实际上i/o指令也可以被映射到plc的输入被plc再次处理之后进行输出。这里更多是完成cnc内部的逻辑处理,再通过i/o(一般为抽象i/o)形式转发下层。
91.服务抽象层架构
92.如图8所示,服务抽象层是将整个数控系统的底层部分通过抽象服务的形式向应用层提供各类接口。
93.这一层是本技术架构中的一个非常重要的中间层,实际上是一个全局的服务层,提供各种对外服务的包装。基于服务抽象的概念,根据各类服务不同的技术需求,尤其是实时任务模块中所提供的服务,采用共享内存、消息队列、远程调用等方法实现对服务的抽象,实现各类同步或异步的服务抽象接口。服务抽象层的详细设计与设备抽象层雷同,通过上层应用与服务实现均依赖于服务抽象接口,避免耦合。
94.同时这一层又与上层的应用层相呼应,为应用层的各类服务管理模块提供底层支撑。
95.基于共享内存技术实现参数服务和信号服务;
96.基于消息队列技术实现日志服务和命令服务;
97.基于远程调用技术实现任务调度服务和权限服务;
98.此外还提供各类api调用服务。
99.以上服务将plc抽象接口、cnc抽象接口及设备抽象接口通过不同服务的形式向上层应用提供弱耦合的服务。
100.应用层架构
101.应用层是整个架构设计的核心点,通过应用层的设计,最终实现应用驱动。
102.如图9所示,应用层主要由应用管理框架和应用层构成,应用管理框架为上层应用的开发和运行提供各种基础框架,是最终实现应用的关键架构。
103.应用管理框架有三个类型分组:应用交互管理模组、应用配置管理模组和应用后台管理模组。
104.●
应用后台管理模组主要承担应用和服务抽象层之间的服务调度和协调管理,解决其中的资源冲突和服务访问权限问题。
105.●
应用配置管理模组属于在应用层构建的重要构成,数控系统在这一层实现脚本应用框架并通过脚本管理模块管理此类应用,实现配置框架并通过配置管理模块简化并统一管理应用配置,实现插件框架并通过插件管理模块管理可以被各应用重复加载的各类插件,实现任务管理框架并通过任务管理模块管理应用的任务调度。
106.●
应用交互管理模组主要实现并管理与交互相关的处理。其中,桌面管理模块实现对桌面上应用图标展示及应用启动入口的管理,包管理实现应用的下载、安全、授权及更新等功能,服务管理模块实现服务类应用的启动、停止等管理,窗口管理模块实现各类带图形交互窗口的应用切换及窗口显示的管理。这一层的几项管理模块实际上决定了数控系统最基础的应用构成。
107.于图2中,应用管理框架的插件管理、桌面管理、配置管理、消息管理、服务管理、包管理、参数管理、任务管理、信号管理、窗口管理、日志管理、命令管理、权限管理、脚本管理、授权管理等模块皆为本软件框架提供的标准模块,通过对接口文件的编写各模块被抽象和定义。所谓接口文件的编写,内容包括对外开放的服务、依赖于其他模块的服务等,用户可以根据实际需求进行定制。
108.值得说明的是,授权管理模块用于管理和校验应用授权,防止应用非法拷贝。该授权管理模块与上述的任务管理模块共同构成了授权保护框架,用于为应用层的应用提供授权验证功能,保护应用不会被非法拷贝。授权保护框架的工作流程如图10所示,数控系统在启动应用层的应用时,首先会将应用执行请求发送到任务管理模块,任务管理模块开始处理应用启动请求,首先请求授权管理模块对该应用进行授权校验,如果校验失败,则表示授权无效执行终止;如果校验通过,则表示授权有效,任务管理模块会启动应用并执行应用功能。
109.再向上就是具体的应用,根据应用类型的不同分成四类:主应用、辅助应用、服务类应用和系统应用。其中,
110.◆
系统应用:就是上文应用交互管理模组最终实现的管理模块工具,包括桌面应用、应用商店应用、系统设置应用以及类似文件浏览器等系统通用应用。
111.◆
主应用:一般在数控系统中只存在一个或者安装多个但仅能启动一个,实现最基本的cnc核心应用功能。例如:五轴cnc应用、激光cnc应用、木工cnc应用等。
112.◆
辅助应用:一般在数控系统中存在多个,且能够同时启动,例如一些辅助cnc调试、提升cnc精度的辅助应用,如:热误差补偿应用、视觉定位应用、示波器应用、i/o诊断应用等。
113.◆
服务类应用:一般是指常驻于内存中,在后台提供某类服务的应用,例如:opcua协议栈服务应用、远程诊断服务应用、远程锁机服务应用、数据采集服务应用等。
114.除系统应用之外,用户可根据实际需求定制主应用、辅助应用、服务类应用。
115.需要说明的是,本技术架构的最终目标就是实现一个让开发者能够灵活定制数控系统的cnc架构,让用户可以自由选择其应用所需的应用,甚至开发面向其应用需求的应用。这些设计目标最终均通过应用层展现。事实上,本技术架构的最终目的就是实现一个尽可能开放和弹性的应用层,底层(除应用层之外的其他层)的所有设计均服务于这个目的。一般地,底层会被打包提供给用户,供用户使用来定制数控系统,根据用户的不同,底层的相关部分可以被定制,当然,高级用户可以自行对底层进行改写,且这些改写不会影响应用层。
116.综上所述,本发明的用于构成数控系统的软件架构和硬件架构有效克服了现有技术中的种种缺点而具高度产业利用价值。
117.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。