在运用PLC编程的过程,我们会发现,经常会运用到中断指令,各厂家的中断指令也不相同,因此我们本期的擂台要求编程完成任何一种PLC的中断的简单程序!请务必将中断指令介绍介绍的尽可能的详尽!程序讲解清楚!
PLC的类型任意选择,回答的最好最完全的,原创最多,阐述最详细,程序越准确者获一等奖!
工控PLC擂台每周一期,本期待97期结束一周后结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:50积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。
中断程序的用法和主程序子程序不同,主程序子程序是依靠能流+触点的方式来调用激活相应的指令内容。而中断程序的不同之处在于,它是由各种中断事件驱动调用的。当发生了与之关联的中断事件时,就会调用相关联的中断程序。中断程序是不分时间场合的,只要条件满足了,立刻就从现有工作中跳入中断程序。执行完后才返回。正因为这个特性,所以名曰“中断”程序,典型的衙内作风。不过正因为这样的特性,可以利用中断程序来完成一些特殊的任务,这些任务平时不会占用PLC资源,只是用的时候才会突然蹦出来。
结合下面的例程,简单说明一下中断程序的使用。
1、在首个周期,必须开放全局中断,这就像一个总开关,它不打开,你后面再怎么得瑟都是白忙活。
2、然后就是设定调用中断程序的条件了。这里我选择使用延时中断,因为这个比较好理解。
3、分别搞定两个中断程序的执行内容。
具体的执行过程是这样,当I0.0按下释放时,延时0.1秒后,有一句话存入VB100起的若干字节当中,并且置位Q0.0。当I0.0再次按下释放时,同样延时0.1秒,刷新新的信息到VB100起的若干字节中,并且复位Q0.0。
这里的I0.0可以替换为其他各种条件,比如通信接收完成、发送完成、输入上升沿或者某个特定的结果等等都可以,具体就自由发挥吧。
例程(主程序):
中断程序INT0:
中断程序INT1:
中断程序是不分时间场合的,只要条件满足了,立刻就从现有工作中跳入中断程序。执行完后才返回。正因为这个特性,所以名曰“中断”程序,典型蛮不讲理的衙内作风。不过正因为这样的特性,才可以让我们利用中断程序来完成一些特殊的任务,这些任务平时不会占用PLC资源,只是用的时候才会突然蹦出来。比如可以在你的控制程序中埋个彩蛋啥的。。。
定时中断组织块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中程序执行完毕一次所需的时间
以台达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.
左侧中断号由上往下分别是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闭合,中断程序执行。