回复:STL 循环加减额定值

我系杰佬

  • 帖子

    125
  • 精华

    2
  • 被关注

    24

论坛等级:侠客

注册时间:2016-07-27

普通 普通 如何晋级?

发布于 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脉冲,就可以改变加减速率。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54699条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。