百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

「干货」三菱FX PLC入门之中断服务

liebian365 2024-10-18 09:34 25 浏览 0 评论

前面我先是分享了PLC程序流程转移中的条件跳转CJ,然后紧接着进攻了子程序调用CALL和循环FOR,这次,我要向“终极BOSS”中断服务发出挑战了!

要学习中断服务,我们就得知道什么是中断。那就让我们看看什么是中断吧!


一、中断是什么

所谓中断,是指PLC按顺序执行程序扫描的过程中,当有需要立即反应的请求发出时,立即中断当前执行的扫描工作,优先地去执行请求所指定的服务工作。服务工作完成后,再回到刚才被中断的地方继续往下执行程序扫描工作。

换句话说,中断服务就像是个磨人的小妖精,时不时地打断PLC当前的工作,PLC又不能不理它。这小妖精一过来,PLC就得马上招待它,服务到它满意走了后,PLC才能继续刚才被打断的工作。


1、中断源


显然,中断也是一种程序流程转移,但这种转移大都是随机发生的,例如故障报警、外部设备动作等。那么,PLC怎么去发现这些小妖精,啊呸,发现这些中断请求的呢?中断请求又是谁发出的呢?其实,发出中断请求的设备称为中断源,中断源可以是外部各种开关信号,也可以是PLC内部定时器、计数器等。

PLC执行哪个中断源的中断服务,是靠不同标号的中断指针区分的,在下文讲中断指令的时候我们再继续探讨这个内容。

2、断点与返回


而PLC在接收到中断请求后,就会在程序中产生一个断点,当中断服务执行完毕后,PLC会回到断点处,也就是所谓的中断返回,继续在断点处往下执行被打断的程序。

中断服务程序的断点与中断返回,显然类似于子程序服务程序的断点与子程序返回,而且中断服务程序和子程序都是处在副程序区,都是用指针作为入口地址标号。但子程序所用的指针是分支指针P,而中断服务程序所用指针为中断指针I。

3、中断执行与优先


PLC只能在中断允许的情况下才能进行中断处理,而且一旦接到中断请求必须立即处理中断服务程序,不管PLC当前在执行主程序还是执行子程序。

另外,PLC在任何时刻都只能执行一个中断服务程序,这时候就会有两种情况。

(1)PLC尚未在执行中断服务程序,当有多个中断请求同时发生:PLC按中断指针编号大小排列优先级,编号越小的优先级越高,就会先处理,例如I000优先于I100,I100优先于I500。

(2)PLC正在执行中断服务程序时有其他新的中断请求发生:此时PLC必须继续执行完当前的中断服务程序,才能去执行其他中断服务程序,也就是按时间优先原则进行处理。毕竟PLC霸总精力有限,小妖精1号先来,那PLC就先服务1号,后面来的就乖乖排好队,总不会漏掉就是了。

4、中断服务程序的编写

中断服务程序和子程序一样,都是写在副程序区,但子程序的调用要用到CALL指令,而且只有当驱动条件成立时,PLC才会去到CALL指令指定的子程序入口去执行子程序,执行到子程序返回指令SRET后返回主程序。

而中断服务程序的执行靠的不是软元件,而是由硬件电路发出中断信号给PLC,PLC自动辨别该中断请求,然后找到相应的入口进而执行对应的中断服务程序,直到执行到中断返回指令IRET后返回到断点(主程序或子程序中)处继续往下执行。

可想而知,在子程序眼前,中断服务程序就是个爸爸。要注意的一点就是,在设计中断服务程序时应遵循“越短越好”的原则,因为中断服务程序执行的时间过长,会影响主程序的执行控制。

知己知彼,方能百战百胜,我们知道了什么是中断后,接下来就要对它发起进攻了!


二、中断指令

三菱FX PLC的中断指令有EI、DI、IRET三个。

1、中断允许指令EI

执行中断允许指令后,PLC在执行接下来的程序的过程中,收到中断请求都会做出应答,去执行相应的中断服务程序。EI指令就像是一扇打开的门,有了这扇打开的门,PLC才能招待中断这个小妖精,就像是哆啦A梦的任意门似的,所以EI又称开中断指令。

EI指令虽然能开中断,但它不能关,哆啦.PLC.梦掏出来的EI门本就是开着的,那如果我们不想PLC招待中断这个小妖精又该怎么办呢?我们继续往下看。


2、中断禁止指令DI

执行EI指令后,如果不想某些程序段被中断,就可以在该程序段前编写中断禁止指令DI。执行DI指令后,PLC在执行接下来的程序的过程中,收到任何中断请求都不会有响应。 DI指令就像是一扇锁闭的门,有了这扇锁闭的门,PLC才能经得住中断这个小妖精的诱惑,不去理它,所以,DI指令又称关中断指令。

知道了中断允许指令和中断禁止指令后,我们继续看中断返回指令。


3、中断返回指令IRET


PLC在执行中断服务程序的过程中,当执行到中断返回指令IRET时,会无条件返回到主程序或子程序的断点处继续往下执行。它的应用与子程序返回指令SRET的应用大同小异,只不过一个用于中断,一个用于子程序罢了。

上文说到,PLC执行哪个中断源的中断服务,是靠不同标号的中断指针区分的,现在我们就来探讨一下这些不同标号的中断指针。


三、中断指针I与其中断源

由上文可知,按中断指针的标号,我们可以把中断源分为3类。


1、外部输入中断


外部输入中断的请求信号其实就是输入端口X0~X5的开关量信号,当X0~X5被用于中断时,一旦接通,就会向PLC发出中断请求。外部输入中断常用于外部紧急事件的处理,如报警。

如上图所示,6个输入端口X0~X5对应12个中断指针,并配有相应的禁止中断继电器。这些禁止中断继电器显然和我们上文所提的关中断指令DI有所不同。DI指令一旦被执行,之后的程序执行过程中,所有中断请求都不被响应,但禁止中断继电器仅仅是对某些中断请求而言。

外部中断指针的标号显然与其输入端口编号有对应关系,并有上升沿和下降沿之分,但对于同一个端口,上升沿中断指针和下降沿中断指针不能同时编写。


2、内部定时器中断

内部定时器中断是按一定时间自动进行的中断,不受扫描周期的影响。它适用于扫描时间较长但又需要及时处理数据的场合,例如模拟量的定时采样。

定时中断指针类似于外部输入中断指针,其标号也有其对应关系,又由于定时中断指针只有3个,且不能重复使用,显然,一个程序中最多只能设置3个定时器中断。


3、高速计数器中断

高速计数器中断理解起来比较难,所以我也没有理解多少,毕竟我也只是一个PLC小白。特别是高速计数器,我根本就不认识它,哇的一声哭出来。

高速计数器中断必须与高速计数器指令DHSCS一起使用,当高速计数器的当前值与设定值相等时,执行中断指针所指的中断服务程序。高速计数器中断可以用于高速的定位控制等。

其所用中断指针如下图所示,对应禁止中断继电器只有一个M8059,当M8059接通时,所有高速计数器中断都被禁止。

类似的,由于高速计数器中断指针有6个,且不能重复使用,显然,一个程序中最多只能设置6个高速计数器中断。

显然,PLC中断的知识,我目前也只算是略懂皮毛,不过,作为一名合格的小白,学到目前为止,我至少是能看懂一些相关的程序的。哪怕有些指令还没学过,但掐指一算,还是能推理出它的大概意思。我相信,随着不断地学习,我会慢慢理解之前尚未理解的知识,当然,你也一样,如果你也在学习PLC的话。

那么,这次的学习分享就到这里啦,共勉!

注:本文章内容都是基于三菱FX PLC所写

选自《三菱FX系列PLC功能指令详解》第二章第10课时

↓免费学习资料

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: