不知道是不是信捷PLC 的BUG 点击:582 | 回复:1



SIXIANGZHE007

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 15回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2015年7月31日
发表于:2015-12-08 11:49:28
楼主

不知道是不是 信捷PLC 的BUG, 测试程序在我附件中。

描述:

    在顺控 中 计数的问题, 

情况1:

        M0 开启流程S0

        S0 :驱动 C1 计数, 并计时 1s

        S0上升沿:驱动C2计数

        计时时间到:rst S0 MO 

无论 开启 多少次 M0 : C1 都只计数1次

                       C2 能正常计数

经过分析有如下猜想:

    时钟脉冲:在分析当前计数语句是不是 执行计数的时候,会参考上一时钟周期 当前计数语句的结果,如果上一次计数语句为OFF,当前周期为ON ,则计数, 其他则不计数。 执行完, 将当前计数语句结果存入,给下一时钟周期判断用。

    那么问题来了, 由于流程控制的特殊性, 当S0关闭时, S0里面的计数语句是不会被执行的, 如果信捷PLC不主动将 上一脉冲的 计数语句 结果 置OFF 的话, 他将一直保存S0 打开时 最后一个时钟周期 的结果,所以会 出现 C1 无论 S0打开多少次 都是1 ,

    至于C2 ,由于是上升沿触发, 所以在S0 开启的第二个周期,计数语句的 结果会被置OFF,下次再开启S0,会正常计数,

    为了 佐证上面的猜想, 可以做一个实验2 :即 只让 S0打开一个时钟周期, 根据上面的猜想, 由于只有一个时钟周期,那么 S0 S0上升沿 在S0关闭时, 计数语句都不会 置OFF, 无论S0打开多少次, C1 C2都将是 1

S1 表示情况1 

S0 表示情况2

正在下载,请等待……
下载附件需0积分!




李东泽

  • [版主]
  • 精华:7帖
  • 求助:25帖
  • 帖子:1209帖 | 6375回
  • 年度积分:216
  • 历史总积分:44409
  • 注册:2010年3月25日
发表于:2016-02-03 12:23:58
1楼

楼主想要表达什么?????


热门招聘
相关主题

官方公众号

智造工程师