首页 上一页 1 2 下一页 尾页

一个输入,输出时四个输出中的任意一路输出 s7-200程序 点击:1724 | 回复:22



燕北寒

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 13回
  • 年度积分:0
  • 历史总积分:108
  • 注册:2009年7月06日
发表于:2010-09-26 21:10:45
楼主
s7-200程序,一个输入,输出时四个输出中的任意一路输出,有什么简单的方法?欢迎大家热烈发帖。



robotH

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 688回
  • 年度积分:0
  • 历史总积分:2433
  • 注册:2004年10月14日
发表于:2010-09-29 09:24:17
21楼

1、10楼的程序是否改过了,我记得原来有两个定时器。

2、对于“如果是这样说明你对程序没有看细,就以你说的输入条件,第一次输入,MB1可能计数为0或1,当第二次输入时,MB1的计数值不是仍为0或1而是1或2,为什么?MB1计数是累加计数的而不是从0计数,怎么会不可能出现Q0.2或Q0.3为输出呢?”的回复:(针对先前的程序)

假定某一时刻I0.0输入时,Q0.0输出,说明MB0此时=0。再过10ms,I0.0再次输入并持续5ms,此时段内T32可能翻转,也可能不翻转,但翻转最多一次。故MB0或者是0,或者是1,而不可能是2或者3.

3、针对现在改过的程序:Q的输出与I0.0的持续时间有关,是可以人为控制的。因此也不是随机的。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-09-30 00:24:23
22楼

最终定下的梯形图如下,望有条件有兴趣的网友在S7-200 PLC上运行试验,看看能否符合楼主的要求。

梯形图是做过改动,只是简化程序,缩短二次输入的间隔时间,原程序是I 0.0 驱动断电延时定时器T100,用I 0.0 由1变0起到T100由1变0止的间隔时间对MB0进行计数,这是考虑手动按钮做输入,其二次输入的最小间隔时间在几百毫秒以上才选用这种控制方式的。考虑到你在5楼提出“如果某一时刻I0.0输入时,输出为Q0.0,5ms时I0.0断开,10ms时再次输入I0.0,”,即二个输入信号间隔10ms,由于此时T100还没有变0,会使第二次输入失效,故将“原用I 0.0 由1变0起到T100由1变0的间隔时间对MB0进行计数”的计数方式改为“在I0.0=1的时间对MB1进行计数,I0.0 的后沿将MB1的计数结果送入MB0”,这样就可缩短二次输入信号的间隔时间,而且也简化了程序。但“一个输入,输出时四个输出中的任意一路输出”的设计思路并没变。现在要论一下你在21楼说的话“假定某一时刻I0.0输入时,Q0.0输出,说明MB0此时=0。再过10ms,I0.0再次输入并持续5ms,此时段内T32可能翻转,也可能不翻转,但翻转最多一次。故MB0或者是0,或者是1,而不可能是2或者3.”,前面我讲过几次,MB0 或MB1是是累加计数,不是清0后计数,假设在输入时间内,MB1最多计一个数,MB1从0开始,第一次计数值为0或1,第二次为0或1或2,第三次为0或1或2或3,第四次为0或1或2或3(或4时即为0)。。。。怎能“不可能是2或者3”呢?多次输入,使MB1的最低二位出现0、1、2、3的几率相等,这就是我编程的依据,如你有充足的理论依据能驳倒我的编程思路我欢迎,如还像前面的说法,我认为就此停止吧。


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页