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

您所在的位置:网站首页 变频器的使用方法及参数调整 信捷CODESYS平台伺服电机转矩控制模式应用与切换

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

2023-06-24 22:37| 来源: 网络整理| 查看: 265

本案例采用信捷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 ,

bExecute:=BControllerbExecute ,

nControllerMode:=ControllerbMode ,

bDone=> ,

bBusy=> ,

bError=> ,

nErrorID=> );

功能块InOut详细说明

Scope

Name

Type

Initial

Comment

Inout

Axis

AXIS_REF_SM3

Axis

Input

bExecute

BOOL

FALSE

TRUE:开始改变控制模式

nControllerMode

SMC_CONTROLLER_MODE

SMC_position

Output

bDone

BOOL

TRUE:模式切换完成

bBusy

BOOL

TRUE:FB未空闲

bError

BOOL

TRUE:函数块中发生错误表示

nErrorID

SMC_ERROR

错误识别

SMC_CONTROLLER_MODE:

枚举变量

类型

初始值

描述

SMC_torque

SMC_CONTROLLER_MODE

1

力矩

SMC_velocity

SMC_CONTROLLER_MODE

2

速度

SMC_position

SMC_CONTROLLER_MODE

3

位置

SMC_current

SMC_CONTROLLER_MODE

4

当前方式

SMC_SetTorque(FB)此功能块将给定的扭矩应用于轴。

在控制器模式SMC_torque中,这是驱动器将产生的设定扭矩。

在控制器模式SMC_velocity或SMC_position中,伺服驱动器可以使用转矩值来改善控制器环路。给定的扭矩应该是驱动器的预期扭矩。这也被称为扭矩前馈控制。

在控制器模式SMC_nocontrol中,功能块没有作用,没有错误报告

Scope

Name

Type

Comment

Inout

Axis

AXIS_REF_SM3

Axis

Input

bExecute

BOOL

TRUE:启用函数块的执行

nControllerMode

LREAL

转矩以Nm(旋转电机)或N表示(直线电机)

Output

bBusy

BOOL

TRUE:FB未空闲

bError

BOOL

TRUE:函数块中发生错误表示

nErrorID

SMC_ERROR

错误识别

功能块展示:

LD:

ST:

SMC_SetTorque_1(

Axis:=Axis_1 ,

bEnable:=SetTorquebExecute ,

fTorque:=Torque ,

bBusy=> ,

bError=> ,

nErrorID=> );

简单案例:

转矩控制相关程序

 

转矩模式切回位置模式或者速度模式,需要停止轴,不然伺服电机会有剧烈抖动,如过伺服电机报错,可通过SMC_Reset功能块复位清除错误。

可通过PDO映射Max Motor Speed来限制电机最高转速,保证安全。此参数只在转矩模式下生效。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3