西门子循环中断的疑惑 点击:1004 | 回复:14



不要迷茫

    
  • 精华:0帖
  • 求助:117帖
  • 帖子:118帖 | 60回
  • 年度积分:67
  • 历史总积分:67
  • 注册:2021年6月04日
发表于:2022-02-21 15:23:39
楼主
求助帖100分-未结帖

PID放到循环中断OB30里了,那么PID运行的时候PLC程序OB1是暂停的是吧,那么,我PID是一直运行的啊,OB1不是就不运行了?请大神们帮指教一下,谢谢!!!



楼主最近还看过



yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10219回
  • 年度积分:3353
  • 历史总积分:48938
  • 注册:2005年4月22日
发表于:2022-02-21 16:20:57
1楼

OB30中断产生--〉执行PID相关指令--〉OB30中断返回--〉执行OB1,下一次OB30中断产生就继续上述流程。


那么问题来了,我存心让OB30中的程序不断的循环怎么办? 系统会放狗咬你,触发看门狗从而系统宕机。


通俗一点就是老板让你去买烟,这就触发了OB30中断,你停止了你手头的工作OB1,然后跑去买烟,你在路上思索着我一辈子买不会去是不是老板发一辈子工资,没想到老板直接打电话给你说你这辈子不用回去了。


HAVE FUN!

幸福的小石头

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 430回
  • 年度积分:0
  • 历史总积分:2706
  • 注册:2015年5月27日
发表于:2022-02-22 03:55:33
2楼

我建议你还是先看一下基础的内容去吧,你以为OB1里面的内容什么时候用什么时候才去扫描吗?

本来PLC就是不断循环扫描的,管你程序执行不执行,只要没有跳转,就顺序扫描了,只不过执行时间特别快,觉察不到而已,加了个中断,无非是原来循环的路上,加了一个小的单个循环分支而已,单支小循环执行完毕,还要再回到原来主循环里面,不知道你在纠结个什么;

还是那句话,去看看PLC的基础运行原理吧,别什么事情都在这一味的空想,自己吓唬自己;

语凡

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 355回
  • 年度积分:0
  • 历史总积分:130
  • 注册:2013年2月23日
发表于:2022-02-22 09:19:49
3楼

多读书就对了,我先去看书了。

请叫我王老湿

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:622帖 | 8548回
  • 年度积分:24
  • 历史总积分:335295
  • 注册:2011年4月25日
发表于:2022-02-22 10:05:33
4楼

如果中断触发了就不执行OB1了,那这PLC还能干嘛

Smile-lyc

  • [管理员]
  • 精华:127帖
  • 求助:50帖
  • 帖子:3482帖 | 22331回
  • 年度积分:1963
  • 历史总积分:145694
  • 注册:2006年8月04日
发表于:2022-02-22 12:00:43
5楼

引用 "yuanle" 的回复,发表在1楼
        内容: OB30中断产生--〉执行PID相关指令--〉OB30中断返回--〉执行OB1,下一次OB30中断产生就继续上述流程。那么问题来了,我存心让OB30中的程序不断的循环怎么办? 系统会放狗咬你,触发看门...

呵呵

121111115

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 378回
  • 年度积分:594
  • 历史总积分:21966
  • 注册:2016年1月20日
发表于:2022-02-22 15:14:20
6楼

中断的组成:中断源,中断服务程序,看门狗等

中断的执行过程:中断源触发中断(存在多个中断源时优先级高的优先)->进入中断服务程序->关闭中断使能->执行中断程序->打开中断使能->中断返回(看门狗一般会在这里看着,中断回不来就强制退出中断)

上述过程在中断服务程序中没有大循环函数的话一个周期就完了,所以你的主程序只是中断那么一下下,其实是瞬间挂起,中断完了会继续刚刚中断发生前的那一瞬间继续运行。

OB30是循环中断,可以理解为定时中断,OB1开始运行,比如2秒进一次中断,进中断的时候会把你OB1的运行情况和状态统统压栈处理,执行完中断出来以后,再进行出栈操作将OB1恢复到进中断之前的状态,然后继续执行OB1,等下个2秒来临重复上述动作。概括一下就是,中断不发生一直执行着OB1,中断发生了暂停OB1去执行中断,执行完中断以后继续执行OB1。所以你的OB30对于OB1来说就是个小插曲。

你理解的那种OB1不运行了,就是你中断服务程序是个死循环,进去以后不出来了,不设看门狗的话中断之后的OB1就不执行了(但不代表扫描周期不扫描,只是不做处理)。配置中断的时候有超时时间,超过这个时间执行不完中断服务程序,那就有可能程序跑飞了,会报错以后退出中断。



lzw555

  • 精华:0帖
  • 求助:17帖
  • 帖子:45帖 | 493回
  • 年度积分:196
  • 历史总积分:3193
  • 注册:2015年6月28日
发表于:2022-02-24 11:40:32
7楼

楼上说的对啊  加中断就是让你的pid不要占用那么多资源    没必要一直执行

LBX112233

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 713回
  • 年度积分:214
  • 历史总积分:601
  • 注册:2012年5月10日
发表于:2022-02-24 11:44:41
8楼

学习了,谢谢分享

yang20908

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1342回
  • 年度积分:118
  • 历史总积分:7918
  • 注册:2010年4月06日
发表于:2022-02-24 16:08:26
9楼

多看看资料   基础很重要的 

coal7721

  • 精华:3帖
  • 求助:0帖
  • 帖子:119帖 | 3966回
  • 年度积分:0
  • 历史总积分:9364
  • 注册:2006年7月15日
发表于:2022-02-24 16:46:02
10楼

PID放到循环中断OB30里了,那么PID运行的时候PLC程序OB1是暂停的是吧,那么,我PID是一直运行的啊,OB1不是就不运行了?请大神们帮指教一下,谢谢!!!

郑州plc

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 36回
  • 年度积分:0
  • 历史总积分:189
  • 注册:2022年2月22日
发表于:2022-02-25 15:19:17
11楼

多多学习

zj1988

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 596回
  • 年度积分:6
  • 历史总积分:287
  • 注册:2020年5月26日
发表于:2022-02-26 18:02:08
12楼

学习

Smile-lyc

  • [管理员]
  • 精华:127帖
  • 求助:50帖
  • 帖子:3482帖 | 22331回
  • 年度积分:1963
  • 历史总积分:145694
  • 注册:2006年8月04日
发表于:2022-04-12 10:39:33
13楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。

3、求助答疑板块版主结贴时间一般滞后30~45天,以方便大家对求助问题答疑足够时间,也为了每一个优秀答疑人员都可以获取到自己的积分和MP奖励。



天涯的雨滴

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 329回
  • 年度积分:155
  • 历史总积分:154
  • 注册:2016年1月26日
发表于:2023-08-03 06:23:32
14楼

谢谢分享


热门招聘
相关主题

官方公众号

智造工程师