EtherCAT 伺服控制功能块实现

本文探讨了EtherCAT在运动控制领域的应用,特别是基于组件的程序架构,如IgH协议栈的使用,以及如何实现PLCopen运动控制功能块库,包括多轴运动控制和IEC61499功能块的集成。

        EtherCAT 是运动控制领域主要的通信协议,开源EtherCAT 主站协议栈 IgH 和SOEM 两个项目,IgH 相对更普及一些,但是它是基于Linux 内核的方式,比SOEM更复杂一些。使用IgH 协议栈编写一个应用程序,控制EtherCAT 伺服电机驱动器是比较简单的。但是要实现一个通用的EtherCAT 组件库(例如IEC61131-3 ,或者IEC61499功能块)就复杂一些了,例如动态地加入一个从站驱动器,通过组件控制某一个从站。

本博文研究基于组件的EtherCAT 程序架构及其实现方法。

背景技术

CiA402 运动控制的CANopen 驱动器规范

        EtherCAT 的运动控制器是基于CANopen 的CiA402规范。这套配置文件规范标准化了伺服驱动器、变频器和步进电机控制器的功能行为。它定义了状态机,控制字,状态字,参数值,它们映射到过程数据对象(PDO)配置文件已在 IEC 61800-7 系列中部分实现国际标准化。

COE 协议

CANopen Over EtherCAT 协议被称为COE,它的架构为:

正是由于如此,基于EtherCAT 的运动控制器的控制方式,PDO 定义,控制方式都是类似的。

主要的一些数据对象

 

PLCopen 运动控制库

 最著名的运动控制的标准应当数PLCopen 运动控制库,它是PLC 上的一个功能块集。PLC 的应用程序通过这些功能块能够方便地实现运动控制。但是这些功能块如何实现,如何与硬件驱动结合。内部实现应该是比较复杂的。笔者看来,应该有两种方式:

  •    PLC 内嵌运动控制模型
  •    通过Ethercat 总线外接运动控制模块

两种结构的实现方法应该各不相同。是否有支持etherCAT 的PLCopen 功能块库?

PLCopen 的功能块分为管理功能块和运动功能块。管理功能块不会引起轴的运动。

管理功能块

功能块 功能说明
MC_Power
MC_ReadStatus
MC_ReadDigitalInput
MC_ReadDigitalOutput

运动功能块

功能块 功能说明
MC_Home 复位到原点
MC_Stop 被控轴减速并停止
MC_MoveAbsolute 以原点为基础,以绝对位置为目标的运动
MC_MoveRelative 以运动点为基础,相对距离为目标的运动
MC_MoveVelocity 对未终止的运动以规定的速度运动
MC_TorqueControl 被控轴施加规定的转矩或者力,达到该值后以该值恒定施加。
MC_PositionProfile 位置配置
MC_VelocityProfile 速度配置

一个开源项目GitHub - i5cnc/plcopen: plcopen中的运动控制功能块。 

功能块 描述
MC_Power 控制电源(开或关)。
MC_Home 命令轴执行“search home”序列。
MC_Stop 命令受控运动停止并将轴传递到“停止”状态。
MC_Halt 命令受控运动停止并将轴传递到“静止”状态。
MC_MoveAbsolute 命令受控运动到指定的绝对位置。
MC_MoveRelative 命令相对于执行时设定的位置具有指定距离的受控运动。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值