本期擂台为征集擂台,请大家编写一个有关于下面描述的程序:
PLC中断指令的用处,以及与扫描周期的 关系? 因此请以自己最熟悉的PLC编写一个程序,包含中断等功能,同时要介绍清楚PLC中断指令的用法及其中断和扫描周期的关系!
PLC的类型任意选择,回答的最好最完全的,原创最多,阐述最详细,程序越准确者获一等奖!
工控PLC擂台每周一期,本期待101期结束一周后结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:50积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换
三菱FX1N的plc,简单的测试了,普通输入信号和中断输入信号的区别。从两幅图,D210和D212的数值可以看出。中断输入采集信号速度比普通输入信号采集速度快10毫秒左右。根据说明书讲解,X0的中断时间是10微妙左右,普通输入时间10毫秒左右。所以,结果是正确的。从扫描周期来看,中断输入比普通输入快18个周期。但是,快多少个周期,跟程序的多少有一定的关系,如果程序步骤多了,相应的周期就会少。但是,即使普通输入的时间为10微妙,中断也会比普通快一个或两个周期。如图:
通过D8020的滤波,将输入信号X0改成最低反应时间,即跟中断的反应时间相同,但是中断还是快一到两个周期。理论上是1个周期,但是,由于扫描效果,如果输入信号在D0加1之前输入,就会造成两个周期的效果。如果在加1指令运行之后,输入中断就会是1个周期。如果加上输入刷新和限制中断范围,就可以出现同一周期效果,从下图D212可以看出。
中断服务程序只有由用户程序把中断服务程序标号(名称)与中断事件联系起来,并且开放系统中断后才能进入等待中断并随时执行的状态
多个中断事件可以连接同一个中断服务程序;一个中断服务程序只能连接一个中断事件
中断服务程序也可由用户程序取消与中断事件的连接;队列中的特定中断事件可以被指令取消;也可用指令禁止全部中断
中断事件各有不同的优先级别
中断服务程序不能再被中断。中断程序执行时,如果再有中断事件发生,会按照发生的时间顺序和优先级排队
中断服务程序执行到末尾会自动返回,也可以由逻辑控制中途返回
在中断程序中只能调用一层子程序,中断程序中的子程序不能嵌套,否则会出错
中断程序应短小而简单,执行时对其他处理不要延时过长,即越短越好
以台达DVP14SS2为例介绍外部输入中断X0用法。
1. 该机型共有8点外部中断插入,外部输入X0_X7对应I000/I001_ I700/I701
SS2机种中断指针I编号
X0对应I000(X0下降沿触发)、I001(X0上升沿触发)
2. 台达WPLSoft 2.30编程软件将中断程序部分视作子程序,当扫描程序检测到外部输入信号X0-X7有上升沿或者下降沿时,执行中断子程序,执行完后(扫描到IRET指令)则返回到主程序并继续往下执行。
3. 用到的指令:IRET:中断返回;EI:中断允许;DI:中断禁止
4. 举例
未执行中断指令时监控截图:
执行中断指令后监控截图:
PLC运行时Y0一直有输出;X0瞬间接通(有上升沿),Y0输出就会一直断开。
同样的逻辑,不使用中断时,就看不到Y0输出因为有X0的上升沿而导致断开的现象发生。将上面的逻辑修改后下载监控,监控截图如下:
由于没有中断,虽然X0上升沿输出M0将Y0关闭了一个扫描周期,但是外部表现上我们是看不到的,看到的是Y0一直输出。
西门子S7-200PLC由I0.1的上升沿产生的中断事件的初始化程序
查表可知,I0.1上升沿产生的中断事件号为2。所以在主程序中用ATCH指令将事件号2和中断程序0连接起来,并全局开中断。程序:
语句表
LD SM0.1 //首次扫描时
ATCH INT_0 2 //将INT_0 和EVNT2连接
ENI //并全局启用中断
LD SM5.0 //如果检测到I/O错误
DTCH 2 //禁用用于I0.1的上升沿中断
(本网络为选项)
LD M5.0 // 当M5.0=1时
DISI //禁用所有的中断
在 PLC 控制过程中,经常要求对某些过程信息进行立即处理,以提高系统的响应速度;
或者对某些时限要求较严格的程序进行时间控制处理。由于PLC 周期扫描机制的限制,
需要引入中断功能。中断功能即是:当中断信号到达时,系统就立即停止当前正在执行的
操作,转而去执行相应的中断服务程序,完成之后再继续向下执行被中断的操作。