各位老师好 ,最近遇到一个关于计算的问题。
想要实现一个功能。输入的实数IN与希望值HOPE比较 。IN大于或者小于HOPE就循环自加1或者自减1直到与HOPE相等。
这期间实现问题如下
1.有什么方法实现改变速率的方法。自己刚开始用的时钟去触发计算,但是觉得有些麻烦
2.在自加加减过程中时常要么停不下来,要么加减1下就停止了。
3.STL如何实现以上的循环自减呢?
如果有知道的老师希望不吝赐教,不胜感激!
问题补充:
各位老师好,之所以需要这样做,是项目上需要稳定增加,不能直接过快的赋予其希望值,防止震荡。还请老师们能够举一个例子,现在换了方式,超出OB1周期。
最佳答案
使用循环中断程序比如OB35,添加以下语句,按照需要时间的快慢设置MW12的数值 ,MW12数值代表循环中断时间的倍数,MD16为目标值,MD20为输入值,M0.0、MW12、MW14、MD16、\MD20按自己程序地址修改
A(
L MW 14
L MW 12
>=I
)
JNB _001
L 0
T MW 14
SET
SAVE
CLR
_001: A BR
= M 0.0
AN M 0.0
JNB _002
L MW 14
L 1
+I
T MW 14
_002: NOP 0
A M 0.0
A(
L MD 20
L MD 16
<R
)
JNB _003
L MD 20
L 1.000000e+000
+R
T MD 20
_003: NOP 0
A M 0.0
A(
L MD 20
L MD 16
>R
)
JNB _004
L MD 20
L 1.000000e+000
-R
T MD 20
_004: NOP 0
提问者对于答案的评价:
自己已经写出来了 ,感谢老师的回答!也感谢其他老师的帮忙
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc349226.html