信捷CODESYS平台伺服电机转矩控制模式应用与切换

文章介绍了如何在信捷CODESYS平台上利用XSStudio和特定的控制器、伺服驱动器进行运动控制。重点讲解了SMC_SetControllerMode功能块用于切换控制器模式,如从扭矩模式切换到位置或速度模式,并强调了在切换模式时需要注意的条件和可能的误差处理。同时提到了SMC_SetTorque功能块的应用,以及转矩控制模式下确保安全的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本案例采用信捷CODESYS平台开发。

软件:XS Studio(基于IEC61131-3)

控制器:XSDH-60A32-E

伺服驱动器:DS5C-20P4-PTA(EtherCAT总线)

EtherCAT拓扑图:

指令介绍:

SMC_SetControllerMode(FB)  设置控制器模式

如果驱动器支持此功能块,则可以使用此功能块切换到另一个控制器模式。前提条件:

轴必须支持所需的控制模式。要对此进行检查,请参阅相应SoftMotion驱动程序库中的功能文档PDF。

必须映射所需的循环I/O数据(例如,扭矩模式:设置扭矩对象)。

调用此功能块时,轴不得处于错误停止、停止或归位状态。否则,将报告错误SMC_SCM_AXIS_IN_WRONG_STATE。

激活时的行为:

该功能块设置轴的byControllerMode(操作模式的命令值)参数,并等待直到参数byRealControllerMode的实际值反映该值。

如果在1000个周期内没有发生这种情况,则功能块将以错误中止。

当从较低级别切换到较高级别控制模式(例如,扭矩->速度、扭矩->位置、速度->位置)时,功能块计算较高级别信号的设定值。例如,当从扭矩模式切换到位置模式时,功能块使用轴的实际位置并添加预期的位置距离,根据实际速度和周期中的时间偏移(Axis.fSetActTimeLagCycles)补偿实际值和设定值之间的时间滞后。后一个值在很大程度上取决于系统(控制器硬件、现场总线、驱动器),可能需要调整。

SMC_SetControllerMode报告bDone后必须调用哪些功能块?

只要byRealControllerMode反映byControllerMode,功能块就会设置其完成输出并停止任何操作。这意味着应用程序立即负责从该周期开始计算正确的设定值。例如,轴是扭矩控制的,应切换到位置控制。启动功能块SMC_SetControllerMode时,轴仍在移动。在切换期间,功能块计算设定位置的正确值。但是,一旦设置了“完成”,就没有任何功能块继续提供设置值,并且轴将立即停止并报告错误。因此,例如功能块MC_Halt、MC_MoveVelocity或MC_MoveAbsolute可以由SMC_ControllerMode的完成输出触发,并接管轴的控制。

功能块展示:

LD:

ST:

SMC_SetControllerMode_0(

Axis:=Axis_1 ,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值