(已结贴)工控PLC擂台第98期-PLC中断问题 点击:847 | 回复:16



玻璃的心

    
  • 精华:30帖
  • 求助:2帖
  • 帖子:984帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2013-05-19 15:09:24
楼主

       在运用PLC编程的过程,我们会发现,经常会运用到中断指令,各厂家的中断指令也不相同,因此我们本期的擂台要求编程完成任何一种PLC的中断的简单程序!请务必将中断指令介绍介绍的尽可能的详尽!程序讲解清楚!

PLC的类型任意选择,回答的最好最完全的,原创最多,阐述最详细,程序越准确者获一等奖!

工控PLC擂台每周一期,本期待97期结束一周后结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:50积分。

MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。

MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。




chinacupor

  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-05-19 16:36:16
1楼

   中断程序的用法和主程序子程序不同,主程序子程序是依靠能流+触点的方式来调用激活相应的指令内容。而中断程序的不同之处在于,它是由各种中断事件驱动调用的。当发生了与之关联的中断事件时,就会调用相关联的中断程序。中断程序是不分时间场合的,只要条件满足了,立刻就从现有工作中跳入中断程序。执行完后才返回。正因为这个特性,所以名曰“中断”程序,典型的衙内作风。不过正因为这样的特性,可以利用中断程序来完成一些特殊的任务,这些任务平时不会占用PLC资源,只是用的时候才会突然蹦出来。


结合下面的例程,简单说明一下中断程序的使用。

1、在首个周期,必须开放全局中断,这就像一个总开关,它不打开,你后面再怎么得瑟都是白忙活。

2、然后就是设定调用中断程序的条件了。这里我选择使用延时中断,因为这个比较好理解。

3、分别搞定两个中断程序的执行内容。


具体的执行过程是这样,当I0.0按下释放时,延时0.1秒后,有一句话存入VB100起的若干字节当中,并且置位Q0.0。当I0.0再次按下释放时,同样延时0.1秒,刷新新的信息到VB100起的若干字节中,并且复位Q0.0。


这里的I0.0可以替换为其他各种条件,比如通信接收完成、发送完成、输入上升沿或者某个特定的结果等等都可以,具体就自由发挥吧。


例程(主程序):


中断程序INT0:


中断程序INT1:


   中断程序是不分时间场合的,只要条件满足了,立刻就从现有工作中跳入中断程序。执行完后才返回。正因为这个特性,所以名曰“中断”程序,典型蛮不讲理的衙内作风。不过正因为这样的特性,才可以让我们利用中断程序来完成一些特殊的任务,这些任务平时不会占用PLC资源,只是用的时候才会突然蹦出来。比如可以在你的控制程序中埋个彩蛋啥的。。。

chinacupor

  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-05-19 16:38:14
2楼

楼主大大,快把50MP给我吧,我都等不及了。。。

从未被超越

  • 精华:3帖
  • 求助:11帖
  • 帖子:108帖 | 1584回
  • 年度积分:1
  • 历史总积分:12293
  • 注册:2011年12月09日
发表于:2013-05-19 20:01:06
3楼

见过程序模块在运行中出现过中断,有的是因为系统的问题,有的是因为模块本身的问题,总之,要不断的去检查,登录测试。

阿水--王者之师

  • 精华:24帖
  • 求助:348帖
  • 帖子:1616帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2013-05-21 08:24:19
4楼

  中断程序的意思就是是由各种中断事件驱动调用的,中断程序的运行是不分时间场合的,只要条件满足了,立刻就从现有工作中跳入中断程序进行运行,别的程序与它不相关。虽各大 PLC 厂家都有区别,但总体使用方式是基本差不多。

  如 S7 300 系统的中断,你可直接做成 OB 块

狼牙精神

  • 精华:6帖
  • 求助:5帖
  • 帖子:468帖 | 5379回
  • 年度积分:119
  • 历史总积分:62906
  • 注册:2020年3月27日
发表于:2013-05-21 10:56:33
5楼

西门子S7-400系统PID控制用OB35循环中断。(PID温度控制阀门)

OB35的作用是每间隔一定的时间中断程序,中断以后转而执行OB35里面的程序。中断间隔在CPU属性里设置,当间隔时间一到,就开始执行OB35里面的程序。

硬件组态双击CPU属性修改OB35时间间隔

OB35中调用FB41

pipimuzi

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 21回
  • 年度积分:0
  • 历史总积分:57
  • 注册:2011年1月25日
发表于:2013-05-21 14:13:09
6楼

最近在玩Schneider,出来露个脸,不足之处,请做多指教:

以M238为例

1.在任务配置里


选择事件或外部的,事件是内部中断任务,外部的是通过外部I/O点输入出发的中断任务,如下图所示,选择外部触发的输入点。


2.然后添加一段POU,在里面编程中断所要完成的动作,就可以了。

chinacupor

  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-05-27 12:54:53
7楼

这个帖难道就这么不了了之了么??我的MP啊。。。

江湖混混-余辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3351帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2013-05-27 13:09:19
8楼

回复内容:

对: chinacupor  这个帖难道就这么不了了之了么??我的MP啊。。。 内容的回复!


 什么状况啊  哪个帖 不了了之  98期才刚刚上的新题目 

平常心心常平

  • [版主]
  • 精华:36帖
  • 求助:17帖
  • 帖子:958帖 | 3831回
  • 年度积分:0
  • 历史总积分:24794
  • 注册:2002年3月24日
发表于:2013-05-30 20:10:50
9楼

定时中断组织块OB35   

西门子S7-300/400有9个定时中断组织块:OB30、OB31、OB32、OB33、OB34、OB35、OB36、OB37、OB38 。    CPU可以定时中断去执行这些模块中的程序,即:每隔一段时间就停止当前的程序,转去执行定时中断组织块中的程序,执行结速后再返回。相当于单片机的定时中断。这9个组织块功能相同,你可以选择其中之一使用,区别是它们的中断优先级不同,如果程序中用到了多个定时中断组织块,应设好它们的执行优先级。    S7-300CPU 可用的定时中断组织模块是OB35,在300站点的硬件组态中,打开CPU属性设置可以看到其它的中断组织块为灰色。OB35默认的调用时间间隔为100ms 我们可以根据需要更改,定时范围是1-60000毫秒(ms)设置中断时间间隔如下图所示注意:设置的时间必须大于OB35中程序执行所花费的时间。例如:如果中断时间间隔为50ms而OB35中的程序花费的时间是70ms,那么OB35中的程序还没执行完毕就产生第二次中断,程序就会出错,这显然是我们不想看到的结果。以现在的技术,让你间隔一小时去月球拿一块石头你能做到吗???去月球所用的时间大于去月球的时间间隔,你做不到吧???正确设置:中断时间间隔大于OB35中程序执行完毕一次所需的时间   

 

ANDYLIU008

  • 精华:1帖
  • 求助:2帖
  • 帖子:25帖 | 475回
  • 年度积分:0
  • 历史总积分:1867
  • 注册:2009年12月12日
发表于:2013-05-30 20:36:32
10楼

不懂,没用过中断,可以结合一个具体的例子说明一下吗

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:984帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2013-07-21 22:10:54
11楼

欢迎大家踊跃参与哈!!!!

吃饭了吗no

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2013年6月16日
发表于:2013-07-25 15:29:01
12楼

回复内容:

对: 平常心心常平  定时中断组织块OB35   西门子S7-300/400... 内容的回复!


 这个一直很困惑,大哥,怎么知道“OB35中的程序花费的时间是多少 ”?呢

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2013-07-27 19:38:46
13楼

以台达DVP14SS2为例介绍外部输入中断X0/X2用法。

1.         该机型共有8点外部中断插入,外部输入X0_X7对应I000/I001_ I700/I701

SS2机种中断指针I编号

X0对应I000(X0下降沿触发)、I001(X0上升沿触发)

X2对应I200(X2下降沿触发)、I201(X2上升沿触发)

2.         台达WPLSoft 2.30编程软件将中断程序部分视作子程序,当扫描程序检测到外部输入信号X0-X7有上升沿或者下降沿时,执行中断子程序(对应指针编号下降沿:**0;上升沿:**1),执行完后(扫描到IRET指令)则返回到主程序并继续往下执行。

3.         用到的指令:IRET:中断返回;EI:中断允许;DI:中断禁止

4.         

  1. 左侧中断号由上往下分别是I001/I201。

下面截图程序,主程序中先禁止后允许中断,中断允许。分别给X0/X2加信号均可监控到中断程序部分(指针I001/I201标记)确实运行了。主程序中Y3/Y4闭合就是由于执行了中断程序使然。

/

2.      左侧中断号由上往下分别是I001/I201。

下面截图程序,主程序中先允许后禁止中断,中断禁止。分别给X0/X2加信号监控不到中断程序部分(指针I001/I201标记)运行。主程序中Y3/Y4没有闭合,中断程序未执行。

 

 

 

 

3.     左侧中断号由上往下分别是I001/I201。

下面截图程序,主程序中中断禁止。分别给X0/X2加信号监控不到中断程序部分(指针I001/I201标记)运行。主程序中Y3/Y4没有闭合,中断程序未执行。

4.     左侧中断号由上往下分别是I001/I201。

下面截图程序,主程序中中断禁止。分别给X0/X2加信号监控不到中断程序部分(指针I001/I201标记)运行。主程序中Y3/Y4没有闭合,中断程序未执行。

 

5.     左侧中断号由上往下分别是I001/I201。

下面截图程序,主程序中中断允许。分别给X0/X2加信号可以监控到中断程序部分(指针I001/I201标记)运行。主程序中Y3/Y4闭合,中断程序执行。

 

 

 

 

 

玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:984帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2013-08-17 22:25:25
14楼

一等奖1名,50MP获得者:
湖北老四            chinacupor


二等奖4名,10MP获得者:
狼牙精神             tonghaoox

pipimuzi               pipimuzi

平常心心常平     chuansh5410

秦君_1                 qjj740210


三等奖1名,50积分获得者:
阿水--王者之师      qsm78


玻璃的心

  • 精华:30帖
  • 求助:2帖
  • 帖子:984帖 | 5801回
  • 年度积分:0
  • 历史总积分:61250
  • 注册:2010年6月11日
发表于:2013-08-17 22:27:45
15楼

欢迎大家继续参与我们以后的各期擂台

湖北老四

  • 精华:2帖
  • 求助:13帖
  • 帖子:25帖 | 845回
  • 年度积分:0
  • 历史总积分:2751
  • 注册:2013年2月16日
发表于:2013-08-23 12:31:21
16楼

回复内容:

对: 玻璃的心 欢迎大家继续参与我们以后的各期擂台! 内容的回复!


哇!50MP啊,多谢管理大大


热门招聘
相关主题

官方公众号

智造工程师