论文部分内容阅读
[摘要] 开放式数控系统是数控系统发展的趋势,也是当今研究的热门。文章通过在分析了COM组件技术和COM组件技术开发数控系统优势的基础上,以运动控制卡为例,采用该技术首先分析了数控软件系统的整体层次,然后重点设计了运动控制模块,实现了软件的开放性。
[关键词] 运动控制模块 COM 开放式
一、引言
开放式数控系统是当今数控技术研究的热门,体系结构开放的数控系统对数控系统的开发商、数控机床的制造商以及最终的用户都有很大的益处。相比之下,传统数控系统存在很多缺点,如兼容性差、不易扩展、人机界面相对固定等,并且其自身的封闭性导致了无法利用计算机技术的最新发展成果,严重地阻碍了数控技术的发展。开放式数控系统的主要研究目的是要解决变化频繁的需求与封闭的控制系统结构之间的矛盾、建立一种新型的模块化、可重构、可扩充的控制系统结构,使数控系统的功能柔性化,能够快速而有效地响应新的加工需求。当前,开放式数控系统已经成为CNC发展的潮流。
二、COM技术
微软的COM是目前比较成熟并已得到广泛应用的组件接口标准,通过定义统一的操作规范,用户不再直接和软件模块的功能函数接触,COM规范作为中介,接口屏蔽了模块内部的特征,从而实现了模块在二进制级的交互。
COM接口是COM中的另一个重要概念,COM接口的定义是COM规范的核心内容。COM接口是与外界之间的约定,是与外界进行交互的信道。接口可以理解成包含了一组函数的数据结构,客户代码可以(也只能)通过这组数据结构,调用组件对象的功能,因此,接口实现了客户外部请求与内部实现的分离。COM接口结构如图1,客户程序通过接口指针调用接口成员函数,接口指针指向另一个指向虚函数表(vtable)的指针(pVtable),虚函数表中的函数指针与对象的具体实现联系起来。因此,通过接口指针用户就能调用COM对象提供的实际功能。为区别不同的接口,COM中用全局唯一的接口标识号(IID,interfaceidentifier)标识每一个接口。COM规范使用IDL语言来描述接口。这种接口描述语言提供了一种不依赖于任何语言的接口描述方法,它可以作为组件程序和客户程序之间的共同语言。
采用基于COM组件技术开发开放式数控系统软件,能够更好的满足开放式数控系统软件的开放性要求,具有明显的优势。
1、采用COM组件技术能够实现数控软件系统的灵活配置,按需集成。这增强了数控系统的开放性。
2、COM组件的模块化程度高,模块间的耦合度低,对某个组件修改后不需要对整个系统进行重新编译,提高了软件的开发、维护效率。
3、COM组件的语言无关性和二进制级交互能力,可使数控系统具有更强的可移植能力。
4、可通过对组件的替换和对组件功能的修改和扩充实现数控系统的升级换代。
图1 COM接口结构图
三、软件系统整体结构
软件系统采用COM技术作为开发工具,采用模块化的设计方法。根据具体功能划分为数控程序编译模块、人机界面模块、加工运行模块、状态监控模块、仿真模块、远程监控模块和参数显示修改模块。
四、运动控制模块的开发
运动控制模块是数控系统的核心模块,数控铣床主轴转速、其余轴的速度及加速度等信息都需要在这里设置。本文根据运动控制卡的特点,将运动控制模块分为七部分,如图2所示,每一部分都有一个与之相对应的COM接口。客户程序通过接口指针调用接口成员函数,通过接口指针就能调用COM对象提供的实际功能。
图2 运动控制模块结构图
1、运动控制卡初始化模块。运动控制卡是基于PCI总线的即插即用卡,和其它插卡设备一样,在应用之前需要对其进行初始化方能正常使用。
2、参数设置模块。运动控制卡初始化后,首先要设置加速度的工作模式、X轴的起始速度、XYZ轴的驱动速度、XYZ轴的加速度及主轴转速、加速度、加速度工作模式等。
另外,还要设置脉冲输出的模式、位置反馈的模式、限位开关的工作模式、伺服信号的使用与否以及是否使用软件限位等。以上参数应根据具体的控制对象来设置,一般只在程序初始化时设置一次,以后不应在设置。
3、直线插补模块。运动控制卡可以进行任意2-3轴直线插补。
如果用户只需要两轴直线插补,则把不参与插补的轴上的坐标或移动的距离设为0。插补运算是在指定轴的基本脉冲时序下运行的,在进行插补命令之前,先要设定指定轴的初始速度、驱动速度等参数。这里的指定轴是指在设定的终点数值中绝对值最大的轴,并且在插补驱动中此轴一直输出脉冲。其他参与插补的轴有时输出脉冲,有时不输出脉冲。
4、圆弧插补模块。运动控制卡可以实现XY、XZ、YZ中任意一个平面上的插补,圆弧插补分为顺时针CW圆弧插补和逆时针CCW圆弧插补两种类型。以XY平面为例,插补程序如下:
STDMETHODIMP CAdt854Interface::XYplanCircle(float StartpointX, float StartpointY, float EndpointX, float EndpointY, float i, float j, int iscw)
{if(iscw==1) inp_cw_arc(0,1,2,(long)((EndpointX-StartpointX)/0.001),(long)((EndpointY-StartpointY)/0.001),(long)((i-StartpointX)/0.001),(long)((j-StartpointY)/0.001));
else inp_ccw_arc(0,1,2,(long)((EndpointX-StartpointX)/0.001),(long)((EndpointY-StartpointY)/0.001),(long)((i-StartpointX)/0.001),(long)((j-StartpointY)/0.001));
return S_OK;}
圆弧插补运算同直线插补运算一样,也是在指定轴的基本脉冲时序下运行的,在进行插补命令之前,先要设定指定轴的初始速度、驱动速度等参数。这里的指定轴是指绝对值大的那个轴,根据插补运算结果,此轴有时输出脉冲,有时不输出脉冲。而另外一轴在插补象限之间一直输出驱动脉冲。
5、快速进给模块。进给运动是以保证刀具与工件相对位置关系为目的,是数字控制系统的直接控制对象。为了实现快速进给,需要对进给速度更新。以X轴为例,程序代码如下所示:
STDMETHODIMP CAdt854Interface::XQuickmove(float AxisXDistance)
{set_speed(0,1,200);
pmove(0,1,(long)(AxisXDistance/0.001));
set_speed(0,1,100);
return S_OK;}
快速进给实现后,需要再次对进给速度更新,回到在初始化模块所设置的速度。以便进行其它的操作。
6、手动模式模块。手动模式是通过操作手摇脉冲发生器来实现机床各轴的进给。手摇脉冲发生器面板包括四个组成部分:急停按钮,驱动轴选择按钮,驱动速度选择按钮和脉冲发生轮。
手动模式下各轴的进给驱动原理比较简单,只需要判断“驱动轴选择按钮”和“驱动速度选择按钮”的档位,然后发送脉冲即可。程序流程图如图3所示。
7、I/O接口模块。是上位机与下位机之间交互各种机床信号(控制面板开关量、行程开关量、系统辅助工作信号) 及插补量的单元。I/O接口模块的主要作用是能够实现数控机床的实时检测、急停、限位、伺服报警等功能,在初始化模块里设置了这些功能的工作模式。
五、结束语
利用COM技术来开发数控系统,可以实现开放式数控系统的模块化、可扩展性、可移植性、可重新配置等特点,上文首先利用COM技术的优势,分析了数控软件系统的整体层次,然后重点设计了运动控制模块,实现了数控软件系统的开放性。体现了COM组件技术的优势。
图3 手动模式程序流程图
参考文献:
[1]朱晓春等.数控技术.机械工业出版社,2005.10.
[2]陈友东,陈五一,王田苗.基于组件的开放结构数控系统.机械工程学报.2006(6):188-192.
[3]张承瑞,郭丽娜等.基于COM技术的开放式数控系统组件实现.制造技术与机床.2006(2):25一28.
[4]潘爱民.COM原理与应用.北京:清华大学出版社,1999.418~419.
[5]众为兴科技.ADT-854四轴运动控制卡说明书.2005.
[6](美)David lseminger 主编 宋立红 叶小松等译. COM技术. 机械工业出版社.2002.1.
作者简介:
丁凤玲(1975、05—)女,汉族,黑龙江哈尔滨人,哈尔滨市瑞兴电气有限公司,助理工程师,研究方向:电力工程自动化、计算机应用。
郭庆伟(1973、09—)男,汉族,黑龙江拜泉人,哈尔滨市瑞兴电气有限公司,机电工程师,研究方向:电力工程及其自动化、生产安全管理。
[关键词] 运动控制模块 COM 开放式
一、引言
开放式数控系统是当今数控技术研究的热门,体系结构开放的数控系统对数控系统的开发商、数控机床的制造商以及最终的用户都有很大的益处。相比之下,传统数控系统存在很多缺点,如兼容性差、不易扩展、人机界面相对固定等,并且其自身的封闭性导致了无法利用计算机技术的最新发展成果,严重地阻碍了数控技术的发展。开放式数控系统的主要研究目的是要解决变化频繁的需求与封闭的控制系统结构之间的矛盾、建立一种新型的模块化、可重构、可扩充的控制系统结构,使数控系统的功能柔性化,能够快速而有效地响应新的加工需求。当前,开放式数控系统已经成为CNC发展的潮流。
二、COM技术
微软的COM是目前比较成熟并已得到广泛应用的组件接口标准,通过定义统一的操作规范,用户不再直接和软件模块的功能函数接触,COM规范作为中介,接口屏蔽了模块内部的特征,从而实现了模块在二进制级的交互。
COM接口是COM中的另一个重要概念,COM接口的定义是COM规范的核心内容。COM接口是与外界之间的约定,是与外界进行交互的信道。接口可以理解成包含了一组函数的数据结构,客户代码可以(也只能)通过这组数据结构,调用组件对象的功能,因此,接口实现了客户外部请求与内部实现的分离。COM接口结构如图1,客户程序通过接口指针调用接口成员函数,接口指针指向另一个指向虚函数表(vtable)的指针(pVtable),虚函数表中的函数指针与对象的具体实现联系起来。因此,通过接口指针用户就能调用COM对象提供的实际功能。为区别不同的接口,COM中用全局唯一的接口标识号(IID,interfaceidentifier)标识每一个接口。COM规范使用IDL语言来描述接口。这种接口描述语言提供了一种不依赖于任何语言的接口描述方法,它可以作为组件程序和客户程序之间的共同语言。
采用基于COM组件技术开发开放式数控系统软件,能够更好的满足开放式数控系统软件的开放性要求,具有明显的优势。
1、采用COM组件技术能够实现数控软件系统的灵活配置,按需集成。这增强了数控系统的开放性。
2、COM组件的模块化程度高,模块间的耦合度低,对某个组件修改后不需要对整个系统进行重新编译,提高了软件的开发、维护效率。
3、COM组件的语言无关性和二进制级交互能力,可使数控系统具有更强的可移植能力。
4、可通过对组件的替换和对组件功能的修改和扩充实现数控系统的升级换代。
图1 COM接口结构图
三、软件系统整体结构
软件系统采用COM技术作为开发工具,采用模块化的设计方法。根据具体功能划分为数控程序编译模块、人机界面模块、加工运行模块、状态监控模块、仿真模块、远程监控模块和参数显示修改模块。
四、运动控制模块的开发
运动控制模块是数控系统的核心模块,数控铣床主轴转速、其余轴的速度及加速度等信息都需要在这里设置。本文根据运动控制卡的特点,将运动控制模块分为七部分,如图2所示,每一部分都有一个与之相对应的COM接口。客户程序通过接口指针调用接口成员函数,通过接口指针就能调用COM对象提供的实际功能。
图2 运动控制模块结构图
1、运动控制卡初始化模块。运动控制卡是基于PCI总线的即插即用卡,和其它插卡设备一样,在应用之前需要对其进行初始化方能正常使用。
2、参数设置模块。运动控制卡初始化后,首先要设置加速度的工作模式、X轴的起始速度、XYZ轴的驱动速度、XYZ轴的加速度及主轴转速、加速度、加速度工作模式等。
另外,还要设置脉冲输出的模式、位置反馈的模式、限位开关的工作模式、伺服信号的使用与否以及是否使用软件限位等。以上参数应根据具体的控制对象来设置,一般只在程序初始化时设置一次,以后不应在设置。
3、直线插补模块。运动控制卡可以进行任意2-3轴直线插补。
如果用户只需要两轴直线插补,则把不参与插补的轴上的坐标或移动的距离设为0。插补运算是在指定轴的基本脉冲时序下运行的,在进行插补命令之前,先要设定指定轴的初始速度、驱动速度等参数。这里的指定轴是指在设定的终点数值中绝对值最大的轴,并且在插补驱动中此轴一直输出脉冲。其他参与插补的轴有时输出脉冲,有时不输出脉冲。
4、圆弧插补模块。运动控制卡可以实现XY、XZ、YZ中任意一个平面上的插补,圆弧插补分为顺时针CW圆弧插补和逆时针CCW圆弧插补两种类型。以XY平面为例,插补程序如下:
STDMETHODIMP CAdt854Interface::XYplanCircle(float StartpointX, float StartpointY, float EndpointX, float EndpointY, float i, float j, int iscw)
{if(iscw==1) inp_cw_arc(0,1,2,(long)((EndpointX-StartpointX)/0.001),(long)((EndpointY-StartpointY)/0.001),(long)((i-StartpointX)/0.001),(long)((j-StartpointY)/0.001));
else inp_ccw_arc(0,1,2,(long)((EndpointX-StartpointX)/0.001),(long)((EndpointY-StartpointY)/0.001),(long)((i-StartpointX)/0.001),(long)((j-StartpointY)/0.001));
return S_OK;}
圆弧插补运算同直线插补运算一样,也是在指定轴的基本脉冲时序下运行的,在进行插补命令之前,先要设定指定轴的初始速度、驱动速度等参数。这里的指定轴是指绝对值大的那个轴,根据插补运算结果,此轴有时输出脉冲,有时不输出脉冲。而另外一轴在插补象限之间一直输出驱动脉冲。
5、快速进给模块。进给运动是以保证刀具与工件相对位置关系为目的,是数字控制系统的直接控制对象。为了实现快速进给,需要对进给速度更新。以X轴为例,程序代码如下所示:
STDMETHODIMP CAdt854Interface::XQuickmove(float AxisXDistance)
{set_speed(0,1,200);
pmove(0,1,(long)(AxisXDistance/0.001));
set_speed(0,1,100);
return S_OK;}
快速进给实现后,需要再次对进给速度更新,回到在初始化模块所设置的速度。以便进行其它的操作。
6、手动模式模块。手动模式是通过操作手摇脉冲发生器来实现机床各轴的进给。手摇脉冲发生器面板包括四个组成部分:急停按钮,驱动轴选择按钮,驱动速度选择按钮和脉冲发生轮。
手动模式下各轴的进给驱动原理比较简单,只需要判断“驱动轴选择按钮”和“驱动速度选择按钮”的档位,然后发送脉冲即可。程序流程图如图3所示。
7、I/O接口模块。是上位机与下位机之间交互各种机床信号(控制面板开关量、行程开关量、系统辅助工作信号) 及插补量的单元。I/O接口模块的主要作用是能够实现数控机床的实时检测、急停、限位、伺服报警等功能,在初始化模块里设置了这些功能的工作模式。
五、结束语
利用COM技术来开发数控系统,可以实现开放式数控系统的模块化、可扩展性、可移植性、可重新配置等特点,上文首先利用COM技术的优势,分析了数控软件系统的整体层次,然后重点设计了运动控制模块,实现了数控软件系统的开放性。体现了COM组件技术的优势。
图3 手动模式程序流程图
参考文献:
[1]朱晓春等.数控技术.机械工业出版社,2005.10.
[2]陈友东,陈五一,王田苗.基于组件的开放结构数控系统.机械工程学报.2006(6):188-192.
[3]张承瑞,郭丽娜等.基于COM技术的开放式数控系统组件实现.制造技术与机床.2006(2):25一28.
[4]潘爱民.COM原理与应用.北京:清华大学出版社,1999.418~419.
[5]众为兴科技.ADT-854四轴运动控制卡说明书.2005.
[6](美)David lseminger 主编 宋立红 叶小松等译. COM技术. 机械工业出版社.2002.1.
作者简介:
丁凤玲(1975、05—)女,汉族,黑龙江哈尔滨人,哈尔滨市瑞兴电气有限公司,助理工程师,研究方向:电力工程自动化、计算机应用。
郭庆伟(1973、09—)男,汉族,黑龙江拜泉人,哈尔滨市瑞兴电气有限公司,机电工程师,研究方向:电力工程及其自动化、生产安全管理。