发明内容
针对现有CNC的开发过程复杂、***功能难以验证、测试过程繁琐以及硬件环境依赖性强等不足之处,本发明提出一种满足功能模块测试、***整体控制功能测试,降低***测试风险与成本的硬件在环数控***控制结构的设计方法。
为解决上述技术问题,本发明采用的技术方案是:
硬件在环数控***控制结构的设计方法,包括以下步骤:
根据数控***的功能特性与控制需求,搭建数控***中CNC的仿真运行环境;
通过现场总线连接CNC与仿真运行环境,进行双向、实时、可靠的数据通信;
由CNC执行加工测试程序,对CNC内整体控制功能或特定功能模块进行仿真加工测试;
根据测试过程的加工控制信息,在仿真运行环境中模拟数控***中CNC以外的装置的控制操作,显示工件的加工过程;
根据工件加工的形态以及测试信息,验证CNC的功能、性能是否满足要求。
搭建CNC仿真运行环境包括以下步骤:
建立满足CNC实时测试要求的实时操作***环境;
根据CNC加工控制要求,建立数控***中CNC以外的设备的数学模型;
根据数学模型,利用仿真软件模拟数控***中CNC以外的设备的加工控制操作;
显示数控***中CNC以外的设备的基本信息和工件的加工过程;
建立通信函数接口,实现控制信息的发送/接收。
对CNC***整体控制功能进行仿真加工测试包括以下步骤:
首先,CNC向仿真运行环境发送当前周期的控制命令;
仿真运行环境根据所建立的数学模型及接收的控制命令,执行指定的***操作,采用图形方式模拟工件加工过程,并返回控制命令的响应信息;
CNC根据所获取的响应信息与当前***状态,计算出下一通信周期的控制命令,重复上述周期通信过程,直至仿真测试过程结束或被用户中断。
对CNC内***功能模块测试包括以下步骤:
根据***功能模块的测试要求,将待测试功能模块载入CNC中;
由CNC执行加工测试程序,向仿真运行环境发送当前周期的控制命令;
仿真运行环境根据所建立的数学模型及接收的控制命令,执行指定的***操作,采用图形方式模拟工件加工过程,并返回控制命令的响应信息;
CNC根据所获取的响应信息与当前***状态,计算出下一通信周期的控制命令;
重复上述周期通信过程,直至仿真测试过程结束或被用户中断;
调节CNC的配置参数与加工控制指令,验证待测试功能模块的临界条件;
显示当前的***状态及仿真加工结果。
所述仿真运行环境还能够模拟CNC,测试其外部设备的功能特性,测试包括以下步骤:
建立CNC的数学模型,采用仿真运行环境模拟指定的CNC;
在每个通信周期中,由仿真运行环境向外部设备发送控制命令;
外部设备根据所获得的控制命令,执行指定的***操作,并将响应信息返回仿真运行环境;
仿真运行环境根据建立的数学模型及设备响应信息,计算下一通信周期的控制命令,重复上述周期通信过程,直至仿真过程结束或被用户中断。
仿真运行环境还用于测试现场总线,步骤为:
通过现场总线挂接总线诊断设备,采集现场总线的通信状态及待测定设备的通信数据;
显示采集的通信数据,用于分析数控装置与仿真运行环境的动态交互过程。
本发明与现有技术相比有益效果及优点:
1.提高***开发设计的质量水平。通过采用硬件在环的数控***控制结构及仿真运行环境,使CNC的功能模块测试可在设计初期进行,有效降低了CNC开发过程中存在的错误与缺陷。此外,所设计的***结构还可以检测CNC外部的驱动装置,方便硬件驱动装置的开发设计与验证。
2.降低测试风险。在***验证过程中,某些功能测试存在着高度的测试风险,如碰撞检测、高速加工测试、多通道同步控制、掉电保护等。通过采用硬件在环的数控***控制结构,在仿真***环境中实现高危***功能的测试与验证,不仅保证了测试过程的准确性,而且避免了设备损坏、人员伤害等意外事故发生。
3.降低测试成本。现有测试技术中硬件环境的搭建需要花费大量的时间与资金,如购买控制设备,搭建数控加工平台,完成硬件设备的连线、配置等基本操作。同时,加工测试过程中还会由于外界因素影响而导致重复性验证,花费大量的测试时间。本发明采用硬件在环的数控***控制结构,可有效满足数控***的测试要求,避免早期测试过程中硬件设备的采购、配置等步骤,减少重复性的加工测试,降低测试成本。
具体实施方式
下面结合附图和实施例对本发明方案进一步详细描述:
实施例1
如图3所示,为硬件在环数控***控制结构的设计方法流程图。本发明采用现场总线技术和硬件在环的设计思想,提出了一种硬件在环数控***控制结构的设计方法,满足***开发设计过程中功能模块测试、***整体控制功能测试等应用需求,提高***开发的质量水平与可靠性,降低测试风险与成本,减少***的测试时间。
该发明方法硬件在环数控***控制结构的设计方法,包括以下步骤:
根据数控***的功能特性与控制需求,搭建数控***中CNC的仿真运行环境;
通过现场总线连接CNC与仿真运行环境,进行双向、实时、可靠的数据通信;
由CNC执行加工测试程序,对CNC内整体控制功能或特定功能模块进行仿真加工测试;
根据测试过程的加工控制信息,在仿真运行环境中模拟数控***中CNC以外的装置的控制操作,显示工件的加工过程;
根据工件加工的形态以及测试信息,验证CNC的功能、性能是否满足要求。
搭建CNC仿真运行环境包括以下步骤:
建立满足CNC实时测试要求的实时操作***环境;
根据CNC加工控制要求,建立数控***中CNC以外的设备的数学模型;
根据数学模型,利用仿真软件模拟数控***中CNC以外的设备的加工控制过程;
显示数控***中CNC以外的设备的基本信息和工件的加工过程;
建立通信函数接口,实现控制信息的发送/接收。
对CNC内***功能模块测试包括以下步骤:
根据***功能模块的测试要求,将待测试功能模块载入CNC中;
由CNC执行加工测试程序,向仿真运行环境发送当前周期的控制命令;
仿真运行环境根据所建立的数学模型及接收的控制命令,执行指定的***操作,采用图形方式模拟工件加工过程,并返回控制命令的响应信息;
CNC根据所获取的响应信息与当前***状态,计算出下一通信周期的控制命令;
重复上述周期通信过程,直至仿真测试过程结束或被用户中断;
调节CNC的配置参数与加工控制指令,验证待测试功能模块的临界条件;
显示当前的***状态及仿真加工结果。
如图4、图4A、图4B所示,为***功能模块在硬件在环***中的测试结构图,实施例1中,根据CNC加工控制要求,建立数控***中CNC以外的设备的数学模型,该模型可向指定的设备生产商购买;根据所建立数学模型与数控***的功能需求,确定仿真运行环境的基本功能模块,如仿真伺服驱动装置、主轴驱动装置、数控加工仿真显示模块、IO装置等外部设备的功能模块,按照数控机床的硬件结构生成各仿真功能模块的控制结构关系,搭建CNC的仿真运行环境,其仿真伺服驱动装置包括仿真控制器、仿真电流放大器,数控机床的硬件结构包括丝杠、工作台、工件夹具等。
对CNC内控制结构的某特定功能模块的仿真测试过程:根据***功能模块的测试要求,将待测试功能模块载入CNC;由CNC运行加工测试程序,执行待测试功能模块的控制功能与算法;CNC向仿真运行环境发送当前周期的控制命令;仿真运行环境根据接收的控制命令,将其转发给仿真控制器,由仿真控制器将其转换为模拟电流信号,发送给仿真电流放大器,执行指定的控制操作,并将操作结果返回给CNC;在仿真运行环境中,采用图形方式模拟工件加工过程;CNC根据所获取的响应信息与当前***状态,计算出下一通信周期的控制命令,重复上述周期通信过程,直至仿真测试过程结束或被用户中断。
调节CNC的配置参数与加工控制指令,验证待测试功能模块的临界条件;在仿真运行环境中显示当前的***状态及仿真加工结果,用于分析待测试功能模块的功能特性与执行效率。
上述控制命令包括:建立连接、设备打开、参数设定、同步/异步运动控制等通信指令;响应信息包括:通信状态、指令执行状态、位置/速度信息、定位是否完成等;***状态及仿真加工信息包括:驱动装置的状态、参数、机床控制信息等。
对CNC的功能模块的测试进一步说明:先建立CNC的功能模块模型,声明功能模块的基本接口信息,包括:数据输入/输出接口、事件输入/输出接口、初始化参数接口、控制状态、控制算法、内部变量等功能模块信息;根据功能模块模型与指定功能模块的控制算法描述,实现所需的功能模块;将功能模块载入到CNC的控制结构中,所述功能模块包括人机界面模块、解释器模块、轨迹规划模块、插补算法模块;采用现场总线连接CNC与仿真运行环境;执行指定的加工测试程序,并调节CNC的配置参数,包括各驱动轴的最大行程、最大速度/加速度限制、控制误差参数;通过数控加工仿真二维或三维实体造型等方法显示工件的加工成型过程;根据工件加工的形态与控制误差,验证CNC的控制功能是否满足应用需求。如不满足测试要求,执行人员查找数控***中控制功能可能存在的错误与问题,修改相关的功能模块,达到所需的控制要求。
对CNC***整体控制功能进行仿真加工测试包括以下步骤:
首先,CNC向仿真运行环境发送当前周期的控制命令;
仿真运行环境根据所建立的数学模型及接收的控制命令,执行指定的***操作,采用图形方式模拟工件加工过程,并返回控制命令的响应信息;
CNC根据所获取的响应信息与当前***状态,计算出下一通信周期的控制命令,重复上述周期通信过程,直至仿真测试过程结束或被用户中断。
实施例2
如图5所示,为***整体控制功能测试在硬件在环***中的测试结构图,本实施例2中,仿真运行环境在实施例1中的基础上,还需根据CNC整体控制功能的测试需求增加相应的仿真功能模块。
***整体控制功能的仿真加工测试过程:根据数控***的加工测试要求,确定数控***的基本功能模块,包括人机界面模块、解释器模块、轨迹规划模块、插补算法模块、刀具补偿模块、空间运动学变换;在CNC中执行指定的加工测试程序,验证CNC的加工控制过程;在仿真运行环境中,根据所获取的控制指令,模拟数控机床的实际加工过程:
通过现场总线获取CNC发送的控制信息;在仿真控制器中对控制信息进行处理,转换为对应的模拟电流信息;模拟电流信息经过仿真电流放大器后发送给仿真电机,控制仿真电机的转动位置/速度;仿真电机的转动过程经过丝杠的传动后变换为工作台相对加工主轴的直线运动,从而实现工件的仿真加工运动控制;在运动控制过程中,可通过传感器检测工件运动的位置信息,并将该信息返回CNC,实现闭环控制功能,以提高数控机床的加工精度;在仿真运行环境中显示机床的基本结构、运动关系、机床坐标系、刀具、夹具以及工件的加工成型过程;
在测试过程当中,调节CNC的配置参数、操作模式、加工指令等信息,触发功能模块内部的临界条件判断,实现碰撞检测、安全控制动作、警报处理等高危***功能的加工测试,验证数控装置的整体控制功能。
实施例3
如图6所示,为运动驱动装置在硬件在环***中的测试结构图,所述仿真运行环境还能够模拟CNC,测试其外部设备的功能特性,测试包括以下步骤:
建立CNC的数学模型,采用仿真运行环境模拟指定的CNC;
在每个通信周期中,由仿真运行环境向外部设备发送控制命令;
外部设备根据所获得的控制命令,执行指定的***操作,并将响应信息返回仿真运行环境;
仿真运行环境根据建立的数学模型及设备响应信息,计算下一通信周期的控制命令,重复上述周期通信过程,直至仿真过程结束或被用户中断。
本实施例3中,建立仿真CNC的数学模型,该数学模型为CNC的功能模块模型,包括数据输入/输出接口、事件输入/输出接口、初始化参数接口、控制状态、控制算法、内部变量;根据所建立的功能模块模型与CNC的主要功能,采用编程软件实现人机操作界面、任务控制器、运动控制器、软PLC等仿真功能模块;按照CNC的控制结构生成各仿真功能模块的控制逻辑关系,搭建形成仿真运行环境;在仿真CNC中执行加工测试程序,对待测试设备进行仿真测试,如运动驱动装置与电机;在每个通信周期中,仿真CNC向上述的外部设备发送相应的控制命令,进行测试与验证。
实施例4
如图7所示,为现场总线在硬件在环***中的测试结构图,仿真运行环境还用于测试现场总线,步骤为:
通过现场总线挂接总线诊断设备,采集现场总线的通信状态及待测定设备的通信数据;
显示采集的通信数据,用于分析数控装置与仿真运行环境的动态交互过程。
本实施例4中,通过现场总线挂接总线诊断设备,采集现场总线的通信状态及待测定设备的通信数据,如显示当前现场总线的通信状态、指定设备的发送/接收信息、采集通信数据等。采集数据信息包括:通信时间、地址、控制位标记、大小、通信状态、控制命令、命令执行状态等。
仿真运行环境在上述的功能模块测试或整体功能测试的实施例的基础上扩展诊断功能模块,通过计算机接口连接诊断设备,获取现场总线的通信数据;
在仿真运行环境中显示采集的通信数据,分析CNC与仿真运行环境的动态交互过程,判断其控制操作、状态变化是否满足指定要求。
采集数据如下表所示:
Date |
Adrr |
CTRL |
Size |
Err |
Da |
ta |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
5 |
31 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
7 |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
EA |
FE |
FF |
FF |
49 |
32 |
0 |
0 |
32 |
8 |
0 |
25 |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
F0 |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
18 |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
ED |
FE |
FF |
FF |
32 |
32 |
0 |
0 |
32 |
0 |
0 |
36 |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
DB |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
29 |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
EE |
FE |
FF |
FF |
1C |
32 |
0 |
0 |
32 |
18 |
0 |
47 |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
C6 |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
3A |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
EF |
FE |
FF |
FF |
6 |
32 |
0 |
0 |
32 |
0 |
0 |
58 |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
B1 |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
4B |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
F1 |
FE |
FF |
FF |
EF |
31 |
0 |
0 |
32 |
10 |
0 |
69 |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
9C |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
5C |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
F0 |
FE |
FF |
FF |
DB |
31 |
0 |
0 |
32 |
10 |
0 |
7A |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
88 |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
6D |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
F2 |
FE |
FF |
FF |
C4 |
31 |
0 |
0 |
32 |
18 |
0 |
8B |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
73 |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
7E |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
F4 |
FE |
FF |
FF |
AD |
31 |
0 |
0 |
32 |
8 |
0 |
9C |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
5E |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
8F |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
F5 |
FE |
FF |
FF |
98 |
31 |
0 |
0 |
32 |
18 |
0 |
AD |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
49 |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
90 |
2010.03.27 |
41 |
1 |
16 |
OK |
34 |
99 |
1C |
C0 |
F5 |
FE |
FF |
FF |
83 |
31 |
0 |
0 |
32 |
10 |
0 |
BE |
2010.03.27 |
41 |
3 |
16 |
OK |
34 |
0 |
0 |
0 |
49 |
30 |
0 |
0 |
0 |
0 |
0 |
0 |
32 |
0 |
0 |
90 |