子程序中上升沿置位的问题,大家帮忙看看哪里出问题

主程序:
网络1
LD     I0.0
LPS
A      T37
A      I0.0
S      V301.0, 1
LPP
TON    T37, 20

网络2
LDN    I0.0
LPS
A      T50
AN     I0.0
R      V301.0, 1
LPP
TON    T50, 20

网络3
LD     I0.5
CALL   SBR_0:SBR0

子程序SBR_0
LD     V301.0
EU
S      Q0.0, 1
1。程序大意是V301.0先被置位成1,之后打开I0.5进子程序,但是Q0.0还是有可能被置位? 
2。我反复试程序,发现有时候Q0.0没亮,有时候又亮。请问这是什么问题? 
3。或者我的程序这样有问题的话,该如何写才能保证在V301.0先被置位的情况下Q0.0不亮

问题补充:
我的困惑是,每次调试程序我总是先打开I0.0置位V301.0,之后再打开I0.5。但是有时候Q0.0不亮,有时候又会亮。
在实际程序中,I0.0是一个周期性的信号,I0.5是一个随机性的信号。程序目的是,I0.5打开之后,I0.0置位,这时Q0.0亮;
I0.0先置位,I0.5再打开,这时Q0.0不亮,需要等到下一个周期的I0.0置位时才会亮。

最佳答案

首先要明确,边沿检测是靠检测两个扫描周期的状态来实现的,如果子程序某一次调用时V301.0是0后子程序停止调用,因子程序不被调用时子程序里的边沿存储位不会改变,那么再一次调用子程序时只要V301.0为1EU指令将检测到上升沿。
除了一直调用并只调用一次的子程序,不推荐在子程序里使用边沿指令。
相信不用子程序,你应该能实现你的目的。

子程序取消,网络3改一下
主程序:
网络1
LD     I0.0
LPS
A      T37
A      I0.0
S      V301.0, 1
LPP
TON    T37, 20
网络2
LDN    I0.0
LPS
A      T50
AN     I0.0
R      V301.0, 1
LPP
TON    T50, 20
网络3
LD     V301.0
EU
A      I0.5
S      Q0.0, 1

提问者对于答案的评价:
虽然没有完全帮到忙,但多少学习到了点东西,谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc305397.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午3:40
下一篇 2020年10月31日

相关推荐

  • EM231 RTD这样设置DIP开关

    S7-200系统中,EM 231 RTD模块外接PT100热电阻,请问相应的DIP开关应该这样拨.并且,200系统中的电阻电偶信号是否和300/400系统中的一…

    SIMATIC S7-200 2021年7月5日
  • 询问版本的相关知识

    CPU224XP的固件:02.01版本3 说明这个cpu模块是哪一年生产的?请大师们指点。 最佳答案 参考;http://www.ad.siemens.com.cn/Se…

    SIMATIC S7-200 2017年6月10日
  • 寻址相加问题

    如图,mw82=0时,m200.0不是0而是1?为什么,请教各位大神了程序该怎么修改呢(排除用R  m200.0的修补程序) 图片说明:  &nbsp…

    2021年7月5日
  • 关于西门子TD400C和TD200文本显示器的使用问题?

    向各路高手请教一下:现有一台TD400C和TD200触摸屏(跟S7200PLC一起使用),故障现象均是:背景灯亮,但屏幕无任何内容信息显示,打算将其原型号更换,我想问的是:这个故障…

    SIMATIC S7-200 2017年6月7日
  • 程序计时的问题

    某混合机在运行过程中,高能转子低速运行30分钟(时段可以改变,这个时段我们称为“第一时段”)后,自动切换高速运行(750转/分钟)20分钟(“第二时段”)。然后,低速、高速交替运行…

    SIMATIC S7-200 2020年10月31日
  • 求教如何做200系列PLC时钟脉冲,0.1秒周期的

    第一:224XP没有专门的0.1S时钟脉冲么?只有1分钟和1秒钟两种?不像300有8种系统时钟脉冲第二:如果没有,是不是只能用定时器自己编写了?有什么其它好办法么?想要个没0.1秒…

    SIMATIC S7-200 2017年11月19日
  • 如何编程实现stop->run?

    2个226 cpu,我想A主运行,B主监控,A出现故障,B通过PPI通讯把A设为STOP,然后代替A控制。在程序中设置隔离有点麻烦。我想知道如何将STOP再变会RUN?上…

    SIMATIC S7-200 2020年10月31日
  • 字符串如何定义?

    要在PLC中定义一个字符串,比如”I L Y”,是要一个字节一个字节的赋值,还是有更简单的方法? 最佳答案 你好,其实可在200的数据块中直接为字符串赋值的…

    SIMATIC S7-200 2018年12月2日
  • 两个S7200PLC通信PROFIBUS DP

    请教各位两个S7200与一个触摸屏PROFIBUS DP通信  PLC之间要进行数据交换 就是1#PLC的I0.0控制2#PLC的Q0.5动…

    SIMATIC S7-200 2020年11月1日
  • step5编程软件如何在win10上使用?

    step5编程软件如何在win10上使用? 钻石用户推荐最佳答案 你在S7-200版块说STEP5,这是两个不同系列不同时代的产品。S5是上个系列的PLC,编程软件肯定不能装WIN…

    SIMATIC S7-200 2021年7月5日