汇川PLC运动控制MC_MoveVelocity速度指令
速度控制指令用于控制EtherCAT总线轴或本地脉冲轴以指定的恒定速度连续运动。此指令控制的是速度,而非位置。指令会持续驱动轴以设定的速度运动,直到接收到停止指令(如MC_Halt、MC_Stop)或新的MC_MoveVelocity指令。此指令适用于需要持续匀速运动的场景,如传送带,连续旋转等。
此指令区别于其他运动指令最大的点就是控制速度而非位置。
核心特性总结:
·速度控制---控制的是运动速度而非位置。
·连续运行---只要Execute信号保持为ON且不被中断,轴就会一直以设定的速度(Velocity)运动。
·没有停止---此指令本身没有停止逻辑,需要外部停止指令中止(如MC_Halt)。
·速度可正可负---可根据Velocity参数的正负来决定运动方向。
·可随时改变速度---可以在运动中通过新的MC_MoveVelocity指令改变速度,但是需要注意速度变化过大导致的冲击。
该指令格式(梯形图+本文化ST语句格式):
各输入输出接口参数介绍:
Execute---执行/保持信号,为ON时启动加速到目标速度,并保持此速度运动。为OFF时,指令退出控制,但是轴可能会因惯性继续运动,故需要外部停止。
Axis---轴实例变量,需要提前开启使能MC_Power。
Velocity---设定的目标速度值。正值时,正向运动;负值时,反向运动;为0时,速度虽然为零,但是指令还在控制。
Acceleration---加速度。
Deceleration---减速度。
CurveType---曲线类型。
InVelocity---速度到达标志位,表示速度已到达设定的速度,而非指令完成标志。
Busy---指令忙碌标志位,正在控制轴时为TURE.
CommandAborted---命令中止标志位,被其他优先级指令中断时为TRUE。
Error---指令执行错误标志位。
ErrorID---错误代码。
通过观察上述指令接口我们发现此指令并没有Done参数,因为MC_MoveVelocity速度指令是连续运动的,是否完成由外部条件决定的。
指令基本控制流程如下所示:
最常用的控制方式,比如传送带:
在ST中编写方式:
另外做伺服同步动态取放料,飞剪/追剪应用场景。
速度渐变应用:
// 实现速度的平滑渐变
VAR
rCurrentSetSpeed : REAL := 0.0;
rTargetSetSpeed : REAL := 150.0;
rRampRate : REAL := 10.0; // 速度变化率 10 units/s²
bSpeedRamping : BOOL;
tRampTimer : TON;
END_VAR
// 速度渐变逻辑
IF bSpeedRamping THEN
tRampTimer(IN := TRUE, PT := T100MS); // 每100ms更新一次 IF tRampTimer.Q THEN
// 逐渐逼近目标速度
IF rCurrentSetSpeed < rTargetSetSpeed THEN
rCurrentSetSpeed := rCurrentSetSpeed + rRampRate * 0.1; // 100ms内的增量
IF rCurrentSetSpeed > rTargetSetSpeed THEN
rCurrentSetSpeed := rTargetSetSpeed;
bSpeedRamping := FALSE;
END_IF;
END_IF;
// 应用新速度
MC_MoveVelocity(
Axis := Axis1,
Execute := TRUE,
Velocity := rCurrentSetSpeed,
Acceleration := 200.0,
Busy => bBusy);
END_IF;
END_IF;
此速度指令与其他定位指令的对比:
在实际应用中,可能会有速度模式和位置模式并存情况,此时需要注意从速度模式切换到位置模式时,要先用停止指令(MC_Halt)停止轴,再执行位置控制指令,防止冲突。
另外,有一点需要特别注意,速度指令由于是连续运动的,可能长时间运动后会超出限位,所处需要持续监控位置,做到安全防护。
常见的问题:
速度不稳定或有波动
·负载变化大---检查机械负载是否不停变化。
·PID增益不合适---需要调整驱动器的速度环PID。
·指令周期不稳定---检查PLC的扫描周期是否波动。
·速度参数(Velocity)变化频繁---最好避免短期的频繁速度设定。
停止时冲击比较大
·没有使用停止指令(MC_Halt)直接取消Execute信号。
·减速度设定过大---减速度过大会使机械承受不住。
调试技巧
·低速测试:先用较低速度(如10%最大速度)测试。
·监控实际速度:通过Trace功能监控ActVelocity,确认与设定速度一致。
·测试启停平滑性:关注启动加速和停止减速过程是否平稳。
·负载测试:在不同负载下测试速度稳定性。
·长时间运行测试:验证在长时间运行中无累积误差或速度漂移。
<o:page></o:page>