首页> 中国专利> 基于CoDeSys控制器的脉冲轴控制方法

基于CoDeSys控制器的脉冲轴控制方法

摘要

一种基于CoDeSys控制器的脉冲轴控制方法,包括:创建脉冲轴主站设备描述文件和脉冲轴从站设备描述文件并导入设备仓库;创建IoDrvStepPulseAxis库和用于设置脉冲数和读取编码器值所需的CmpStepPulseEncoder库并导入库仓库;IoDrvStepPulseAxis库包括脉冲轴主站设备功能块和脉冲轴从站设备功能块,脉冲轴从站设备功能块由CoDeSys软件的功能块AXIS_REF_SM3继承得到;在CoDeSys工程中添加脉冲轴主站设备和脉冲轴从站设备,并配置脉冲轴的工作参数;使用添加的脉冲轴主站设备和脉冲轴从站设备对脉冲型伺服驱动器进行控制。本发明可实现脉冲轴的闭环控制,且脉冲轴与其它总线轴完全平等。

著录项

说明书

技术领域

本发明涉及PLC技术。

背景技术

近年来,因CoDeSys(Controller Development System)具有开放式、可重构、组件化、符合IEC 61131-3国际标准等优点,越来越多的厂家基于CoDeSys软件平台来开发运动控制器。CoDeSys软件支持大部分的工业现场总线,如EtherCAT、CANopen、EtherNET/IP等,但并不提供对脉冲轴的支持。

目前,国内基于CoDeSys软件控制脉冲轴的方法均采用虚轴的方式,然后将虚轴的输出转化为具体脉冲进而控制脉冲型伺服驱动器,相关内容可参见申请号为201911398445.9、发明名称为“一种利用codesys虚轴实例化脉冲轴的方法”的中国专利申请。由于CoDeSys中虚轴自身的特性,即实际位置等于目标位置,导致其无法做闭环控制;此外,采用虚轴的方法控制脉冲轴在使用基于PLCopen标准接口规范进行运动规划时,并不能像其它总线轴一样平等对待,需要进行额外的操作(如控制IO、脉冲值编码器值转换、变量映射等复杂繁琐的操作),才能实现对脉冲轴进行如上/下使能、运动控制、清除错误等操作。

因此,亟需设计一种简单易用且符合PLCopen标准接口规范的脉冲轴控制方案。

发明内容

本发明所要解决的技术问题在于提供一种基于CoDeSys控制器的脉冲轴控制方法,其可实现脉冲轴的闭环控制,且脉冲轴与其它总线轴完全平等,程序开发人员不用区分总线轴与脉冲轴。

本发明实施例的一种基于CoDeSys控制器的脉冲轴控制方法,包括:

创建脉冲轴主站设备描述文件和脉冲轴从站设备描述文件,将创建的脉冲轴主站设备描述文件和脉冲轴从站设备描述文件导入CoDeSys软件的设备仓库;

创建IoDrvStepPulseAxis库和CmpStepPulseEncoder库,将IoDrvStepPulseAxis库和CmpStepPulseEncoder库导入CoDeSys软件的库仓库;IoDrvStepPulseAxis库包括脉冲轴主站设备功能块和脉冲轴从站设备功能块,脉冲轴主站设备功能块用于实现脉冲轴主站设备的功能,脉冲轴从站设备功能块用于实现脉冲轴从站设备的功能,脉冲轴从站设备功能块由CoDeSys软件提供的功能块AXIS_REF_SM3继承得到;CmpStepPulseEncoder库包括用于设置脉冲数和读取编码器值所需的功能块;

在CoDeSys工程中添加脉冲轴主站设备和脉冲轴从站设备,并配置脉冲轴的工作参数;

使用添加的脉冲轴主站设备和脉冲轴从站设备对脉冲型伺服驱动器进行控制。

本发明至少具有以下优点:

1、本实施例的基于CoDeSys控制器的脉冲轴控制方法采用了一主多从的树形拓扑结构,可实现对脉冲轴进行闭环控制;

2、本实施例的基于CoDeSys控制器的脉冲轴方法中,通过继承自AXIS_REF_SM3的脉冲轴从站设备功能块AXIS_REF_PULSE_SM3实现对脉冲轴的运动控制,完全兼容了所有的CoDeSys标准功能块接口,使得脉冲轴与其它总线轴完全平等,都符合PLCopen标准接口规范,程序开发人员不用区分总线轴与脉冲轴;

3、采用本实施例的基于CoDeSys控制器的脉冲轴控制方法,程序开发人员只需添加脉冲轴主站和脉冲轴从站,然后即可使用PLCopen标准接口规范对脉冲轴进行运动控制,简化了用户操作。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了根据本发明一具体实施方式的基于CoDeSys控制器的脉冲轴控制方法的流程示意图。

图2示出了根据本发明一具体实施方式的基于CoDeSys控制器的脉冲轴控制方法的系统框架示意图。

图3示出了脉冲轴从站设备功能块AXIS_REF_PULSE_SM3继承自CoDeSys软件提供的功能块AXIS_REF_SM3。

具体实施方式

图1示出了根据本发明一具体实施方式的基于CoDeSys控制器的脉冲轴控制方法的流程示意图,CoDeSys控制器是指采用了德国3S公司的CoDeSys软件的运动控制器。请参考图1,根据本发明实施例的基于CoDeSys控制器的脉冲轴控制方法,包括以下步骤:

创建脉冲轴主站设备描述文件和脉冲轴从站设备描述文件,将创建的脉冲轴主站设备描述文件和脉冲轴从站设备描述文件导入CoDeSys软件的设备仓库;

创建IoDrvStepPulseAxis库和CmpStepPulseEncoder库,将IoDrvStepPulseAxis库和CmpStepPulseEncoder库导入CoDeSys软件的库仓库;IoDrvStepPulseAxis库包括脉冲轴主站设备功能块和脉冲轴从站设备功能块,脉冲轴主站设备功能块用于实现脉冲轴主站设备的功能,脉冲轴从站设备功能块用于实现脉冲轴从站设备的功能,脉冲轴从站设备功能块由CoDeSys软件提供的功能块AXIS_REF_SM3继承得到;CmpStepPulseEncoder库包括用于设置脉冲数和读取编码器值所需的功能块;

在CoDeSys工程中添加脉冲轴主站设备和脉冲轴从站设备,并配置脉冲轴的工作参数;

使用添加的脉冲轴主站设备和脉冲轴从站设备对脉冲型伺服驱动器进行控制。

图2示出了根据本发明一具体实施方式的基于CoDeSys控制器的脉冲轴控制方法的系统框架示意图。请参考图2,图2中示出了脉冲轴主站设备描述文件STEP_PulseAxis_Master.devdesc.xml和脉冲轴从站设备描述文件STEP_PulseAxis_Slave.devdesc.xml。脉冲轴主站设备描述文件中定义了脉冲轴使用任务类型、所需的外部库IoDrvStepPulseAxis以及对应的功能块(Function Block)IoDrvStepPulseAxisMaster;脉冲轴从站设备描述文件中定义了脉冲轴基本属性、所需的外部库IoDrvStepPulseAxis以及对应的功能块AXIS_REF_PULSE_SM3。将主、从站设备描述文件导入到CoDeSys软件的设备库,在CoDeSys工程中添加脉冲轴主站设备和脉冲轴从站设备,会实例化脉冲轴主站IoDrvStepPulseAxisMaster功能块实例和脉冲轴从站AXIS_REF_PULSE_SM3功能块实例。由图3所示的功能块的继承关系可知,脉冲轴从站设备功能块AXIS_REF_PULSE_SM3由CoDeSys软件提供的驱动器接口功能块AXIS_REF_SM3继承得到,从而使得本实施例的脉冲轴从站设备可以使用PLCopen标准接口规范对脉冲轴从站进行启动控制、运动规划控制和停止控制。而虚轴(AXIS_REF_VIRTUAL_SM3)和EtherCAT总线轴(AXIS_REF_ETC_DS402_CS)也是直接或间接继承自AXIS_REF_SM3功能块。

CoDeSys应用程序(Application)会引用IoDrvStepPulseAxis库中的脉冲轴主站设备功能块IoDrvStepPulseAxisMaster和脉冲轴从站设备功能块AXIS_REF_PULSE_SM3;而IoDrvStepPulseAxis库调用CmpStepPulseEncoder库中的功能块,CmpStepPulseEncoder库提供了设置脉冲周期、设置脉冲类型、设置脉冲数、设置编码器类型、读取编码器值等功能块。

图2的下左半部分代表脉冲轴一主多从的拓扑结构,脉冲轴主站设备PulseAxisMaster下可以挂载多个脉冲轴从站设备PulseAxisSlave,可实现链表管理;图2的下中间部分代表脉冲轴主站设备PulseAxisMaster和脉冲轴从站设备PulseAxisSlave对应的XML文件,XML文件用以描述设备的节点类型、属性等特征;图2下右侧部分代表实例化的脉冲轴主站设备PulseAxisMaster和脉冲轴从站设备PulseAxisSlave对应的功能块。

下面结合一具体的实施方式对本发明的具体实施过程进行详细说明。该实施方式的基于CoDeSys控制器的脉冲轴控制方法的实施过程如下。

a、创建脉冲轴主站设备描述文件STEP_PulseAxis_Master.devdesc.xml

脉冲轴主站设备描述文件的设计遵循CoDeSys XML语法,其主要作用如下:

a1、一主多从树形拓扑结构,用来挂载脉冲轴从站设备,方便管理;

a2、CoDeSys工程中添加脉冲轴主站设备时指定需要添加的库名称;

a3、CoDeSys工程中添加脉冲轴主站设备时指定实例化功能块名称;

a4、脉冲轴主站设备实例化后指定运行的方法。

b、设计脉冲轴从站设备描述文件STEP_PulseAxis_Slave.devdesc.xml

b1、一主多从树形拓扑结构,用来指定脉冲轴从站设备挂载到哪个父设备下;

b2、CoDeSys工程中添加脉冲轴从站设备时指定需要添加的库名称;

b3、CoDeSys工程中添加脉冲轴从站设备时指定实例化功能块名称;

b4、脉冲轴从站设备实例化后指定运行的方法;

b5、脉冲轴从站设备实例化后周期调用的方法;

b6、脉冲轴从站设备轴参数,如设备ID、运动类型、速度曲线类型、软件限制最大速度、软件限制最大加速度、软件限制最大减速度、软件限制最大加加速度、脉冲当量等参数。

c、创建脉冲轴主站设备和脉冲轴从站设备所需的IoDrvStepPulseAxis库IoDrvStepPulseAxis库起到承上启下的作用,对上而言,CoDeSys工程中添加的脉冲轴主站设备和脉冲轴从站设备会使用到该库中的IoDrvStepPulseAxisMaster功能块和AXIS_REF_PULSE_SM3功能块。对下而言,直接调用CmpStepPulseEncoder库中的功能块,实现对脉冲数和编码器值的转化。

脉冲轴主站设备功能块IoDrvStepPulseAxisMaster用于实现脉冲轴主站设备的功能,脉冲轴主站设备的功能主要为管理脉冲轴从站设备,脉冲轴从站设备功能块AXIS_REF_PULSE_SM3用于实现脉冲轴从站设备的功能,脉冲轴从站设备的功能主要为控制脉冲型伺服驱动器,脉冲轴主站设备诊断功能块IoDrvStepPulseAxisMasterDiag用于实现脉冲轴主站设备的诊断,脉冲轴从站设备诊断功能块AXIS_REF_PULSE_SM3_Diag用于实现脉冲轴从站设备的诊断,链表功能块FixArrayList用于实现脉冲轴主站设备对多个脉冲轴从站设备的链表管理功能。

因脉冲轴从站功能块AXIS_REF_PULSE_SM3继承自CoDeSys软件的驱动器接口功能块AXIS_REF_SM3,根据面向对象多态性的特性,需要对AXIS_REF_PULSE_SM3功能块中的方法(Method)进行重写,用以适用脉冲型伺服驱动器的控制以及使其符合PLCopen标准接口规范,重写的方法如下表所示,

d、创建设置脉冲数、读取编码器值所需的CmpStepPulseEncoder库

综上所述,通过上述具体实施方式中的步骤a~d,首先,创建脉冲轴主站设备描述文件和脉冲轴从站设备描述文件,并导入到CoDeSys软件的设备仓库中;其次,创建脉冲轴主站设备和脉冲轴从站设备所需的IoDrvStepPulseAxis库和设置脉冲数、读取编码器值所需的CmpStepPulseEncoder库,并导入到CoDeSys软件的库仓库;然后,在CoDeSys工程中添加脉冲轴主站设备和脉冲轴从站设备,并配置脉冲轴的参数;最后,使用添加的脉冲轴主站设备和脉冲轴从站设备(调用了PLCopen标准接口规范)对脉冲型伺服进行单轴、电子齿轮、电子凸轮、CNC和轴组控制。

本发明实施例的基于CoDeSys控制器的脉冲轴控制方法通过IoDrvStepPulseAxis库和CmpStepPulseEncoder库隐藏了脉冲轴具体的启停、脉冲转换、编码器值转换等细节,并通过继承自AXIS_REF_SM3的脉冲轴从站设备功能块AXIS_REF_PULSE_SM3实现对脉冲型伺服驱动器的运动控制,完全兼容了所有的CoDeSys标准功能块接口,简单易用,与其它总线轴完全平等,均可适用于单轴控制、电子齿轮控制、电子凸轮控制、CNC控制和轴组控制。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号