最近在做项目的时候用到了通过模拟量输出控制设备速度快慢。因为之前大多数是通过端子控制或者是总线的控制方式来控制速度,因此首先尝试了端子控制模拟速度输出。但是由于加速度过大导致设备启动后会快速加速,停止时也会快速减速,不够平滑。在网上查阅了相关资料提到通过斜坡函数来控制,速度会平滑加速和减速。在尝试和改进了斜坡函数设备按照需求达到了我的需求,在加速和减速过程中都可以很平滑的加/减速了。
先谈下我的控制原理,我的控制方式和参考文章的控制方式不一样。参考文章的控制原理设置初始值、目标值及斜坡时间。斜坡时间的单位为秒,其内部使用延时接通定时器指令,时基为100ms。斜坡时间乘以10即为定时器的启动次数。通过计算初始值与目标值的差值,除以计时器的启动次数,即可算出每次定时器计时达到时应当增加的数值单位。我的控制原理也是设置初始值、目标值及斜坡时间。斜坡时间的单位为秒,其内部使用延时接通定时器指令,时基为100ms。斜坡时间乘以10即为定时器的启动次数。不过计算方式是在刚开始时先起始速度、目标速度和斜坡时间确定斜率,然后通过斜坡时间计算当前的速度。即y(目标速度)=k(斜率)x(斜坡时间)+b(起始速度)。很简单吧,我觉得这样更容易理解和计算。在项目中也尝试了完全可以应用。
下面附上源程序:
该程序可以实现从起始速度到目标速度随着斜坡时间的大小而变化快慢,时间越短,变化越快。提是保证变频器的加速度足够大,保证在斜坡时间内足够达到计算速度(一般都可以满足)。起始速度可以是0,也可以是任意数值。
参考:西门子SCL编程实例——斜坡发生器(基于定时器)