恭喜,你发布的帖子
发布于 2019-02-15 16:51:06
2楼
///////////////////////手动复位输出//////////////////
A #i_reset_Bool
R #o_output
///////////////判断输入值与期望值是否相等/////////////
L #i_Input_Int
L #i_Hope_Int
==I
JC Nop0
L #i_Input_Int
L #s_inputRecord_Int
==I
JC Next
L #i_Input_Int
T #s_varRecord_Int
T #s_inputRecord_Int
//////////////判断缓存值与期望值是否相等//////////////
Next: L #s_varRecord_Int
L #i_Hope_Int
==I
////////////////////相等时跳转结束///////////////////
JC Nop0
L #s_varRecord_Int
L #i_Hope_Int
>I
JCN Label2
///////////////大于时按照设定脉冲做减法///////////////
Label1 : A #i_pulse_Bool
L #s_varRecord_Int
JCN Nop0
DEC 1
T #s_varRecord_Int
JU Label3
///////////////小于时按照设定脉冲做加法///////////////
Label2 : A #i_pulse_Bool
JCN Nop0
L #s_varRecord_Int
INC 1
T #s_varRecord_Int
JU Label3
//////////////////等于时置位输出标志位////////////////
Label3 : L #s_varRecord_Int
L #i_Hope_Int
==I
JCN Nop0
S #o_output
JU Nop0
Nop0: NOP 0
以上贴出的就是按照楼主的提出的需求写出的一段程序,用的多是跳转指令。将代码写进FB里面,直接调用程序的FB块就可以,功能实现应该没问题,可能写的比较复杂,再优化一下更好。另外,改变速率的方法,通过修改脉冲的频率可以实现。例如将in_pulseS设定为1S脉冲或者2S脉冲,就可以改变加减速率。
请填写推广理由:
分享
只看
楼主