条件调用子程序和跳转指令的问题

1.我在S7300中有条件调用两个FC来做手动和自动控制程序,在自动程序里面用到了定时器和计数器,还有用(S)M作为状态标志,输出都是线圈(),在调用手动FC时,我在OB1里面对定时器、计数器和M进行了复位和清零,但发现程序偶尔会乱跑,请问该如何解决?
 2.我将上述方法用到S7200中,情况依然会出现;我想问下用跳转指令来做是否可以解决,当程序执行手动部分时,会把自动部分的定时器、计数器和M进行清零和复位吗?我要怎么处理?
 恳请您宝贵的意见和指点,谢谢!

问题补充:
调用子程序和用跳转指令都可以实现吗?哪种会更好一些,更方便对自动部分的状态和定时计数进行复位,下次进入自动部分程序能从头开始执行而不接着上次的地方开始执行。

最佳答案

没有指令,任何程序都不会对定时器、计数器和M自动清零。
 你的要求可以很简单的方法做到:
 1、将手动和自动功能分别写在两个子程序中,有条件的分别调用。
 2、在调用子程序前,用使能条件的上升沿对定时器、计数器和M执行一次复位。这样子程序中的这些功能块就能从头开始。
 3、如果自动程序中的这些功能块会影响手动程序,也可以在手动程序调用前先行复位。
 如果程序简单跳转指令也可以用,但复杂程序不如用子程序容易理解。

提问者对于答案的评价:
知道该怎么解决了,谢谢

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午10:34
下一篇 2021年7月4日

相关推荐

发表回复

登录后才能评论