首页 上一页 1 2 下一页 尾页

(已结贴)2011-06-10-工控擂台-PLC中跳转指令和中断指令的区别 点击:4044 | 回复:21



cqu_rockwell

    
  • 精华:19帖
  • 求助:1帖
  • 帖子:814帖 | 8694回
  • 年度积分:0
  • 历史总积分:53962
  • 注册:2010年6月30日
发表于:2011-05-09 18:32:31
楼主

PLC中跳转指令和中断指令的区别

 

 

能结合实际例子的回答、原创最多、阐述最全的将得大奖。


下周初结贴,9个最优回帖分别获得20MP、10MP、10MP、10MP、20积分、20积分、20积分、20积分、20积分!

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

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



楼主最近还看过



Piston

  • 精华:0帖
  • 求助:1帖
  • 帖子:23帖 | 13107回
  • 年度积分:18
  • 历史总积分:40065
  • 注册:2009年5月22日
发表于:2011-05-09 20:46:53
1楼

PLC的跳转指和PLC的中断指令都是导致程序运行流程改变的指令。其区别包括:

1、其各自产生运行流程改变的原因不同:跳转指令是因为程序扫描执行中遇到了一条跳转指令,仅仅是该条指令就可以直接指定程序流程转移到指定的程序地址(这是无条件跳转指令),或者当扫描到该跳转指令的时候跳转的条件正好满足,这时候会发生流程转移,不满足条件,则即使扫描到此跳转指令也不跳转(这是有条件跳转指令);而对于中断指令,发生程序执行流程转移的机制是中断源引发中断事件,三菱FX系列就包括外部中断、定时中断、高速计数器中断三类;

2、流程转移时处理方式不同:跳转指令发生后程序流程转移到程序目的地址是在指令中实现指定的,通常仍旧是主程序中的某一地址上,跳转时只是跳过程序中某一段即可,接下来还是顺序扫描执行下去而已。而中断指令则需要记忆中断发生处地址(也就是中断点),以便转移向中断响应子程序处,中断响应子程序执行完毕后能够可靠返回断点处,而且中断程序还可能涉及中断参数的传递,而跳转则远没有那么多的麻烦事;

3、实现的限制条件不同:中断除了要求有中断源引发相应的中断事件外,还要受到主程序中是否设置了开中断和关中断指令(三菱、西门子plc中就是EI、DI指令),跳转指令只需要跳转的条件满足即可(条件跳转),甚至不需要跳转条件(指无条件跳转的情况);

4、使用的指针不同:以三菱的FX、Q系列为例,跳转指令执行后不必都执行程序返回,使用的是指针P。而中断程序由于发生中断的时间是随机的,原先的程序被随机中断,所以当响应过中断程序后要返回断点继续执行,所使用的是指针I ;

5、程序流程转移发生时机的可控制性不同:在跳转指令,流程转移的发生一切都是事先设定的,可以说是可控的;在中断引发流程转移时,基本都是随机发生的,无法事先预知

welfare87

  • 精华:0帖
  • 求助:4帖
  • 帖子:44帖 | 2827回
  • 年度积分:0
  • 历史总积分:25853
  • 注册:2009年2月20日
发表于:2011-05-09 22:37:18
2楼

跳转指令,是执行到了才会跳转。也就是要等扫描周期扫到了,才会去执行,程序编好了,在什么地方执行就固定了

而中断,当中断发生时,停止当前扫描进行中断处理,用于及时处理与用户程序的执行时序无关的操作,或者不能事先预测何时发生的“事件”。

Piston

  • 精华:0帖
  • 求助:1帖
  • 帖子:23帖 | 13107回
  • 年度积分:18
  • 历史总积分:40065
  • 注册:2009年5月22日
发表于:2011-05-09 23:32:55
3楼
楼上说的很好!

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-05-10 08:42:00
4楼
同意2楼说法,再补充一点:跳转指令执行后,是不会自动返回主程序的,必须再有一条跳转指令,才能跳转到指定的地址运行。跳转指令又分无条件转移和有条件转移二种。而中断,执行完后会自动返回主程序原处,继续执行主程序。

自动化的初学者

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 59回
  • 年度积分:0
  • 历史总积分:378
  • 注册:2010年8月13日
发表于:2011-05-10 11:57:20
5楼
同意大家的说法,自己是初学者,(ˇˍˇ) 想~大家学习了

blueprint

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 510回
  • 年度积分:0
  • 历史总积分:2419
  • 注册:2009年5月20日
发表于:2011-05-15 10:16:07
6楼
跳转指令是扫描到后,跳转到指针所指引的位置,继续执行,中间段的程序就跳过,不执行了,可以缩短程序的扫描周期.
中断是扫描到后,执行中断程序,中断程序结束后,回到跳转前的位置,继续执行接下来的程序

coolbee

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 46回
  • 年度积分:0
  • 历史总积分:244
  • 注册:2011年2月10日
发表于:2011-05-25 10:01:52
7楼
其实还有个区别,使用跳转程序多并不会太占用plc的CPU性能,而如果中断程序一多,将严重影响PLC的运行!!

jingtao

  • 精华:2帖
  • 求助:0帖
  • 帖子:94帖 | 3205回
  • 年度积分:0
  • 历史总积分:20573
  • 注册:2007年10月31日
发表于:2011-05-25 15:32:19
8楼

1:跳转指令:当条件满足时,自动跳转所在标号的程序行,开始执行,意味着,跳过中间的程序,一下子,跳到另外的一个地方执行了。

西门子S7-200中跳转至标签(JMP)指令对程序中的指定标签(n)执行分支操作。跳转接受时,堆栈顶值始终为逻辑1。标签(LBL)指令标记跳转目的地(n)的位置。可以在主程序、子程序或中断例行程序中使用"跳转"指令。

2:中断指令是指:当条件满足后,程序中断运行,并保持原有数据、状态不变。当然,你需要设置中断允许区域,以及中断处理子程序。

 西门子S7-200中使用中断服务程序来响应这些内部、外部的中断事件。中断服务程序需要通过用户编程与特定的中断事件联系起来,才能工作。中断程序与子程序最大的不同是,中断服务程序不能由用户程序调用,而只能由特定的事件触发执行。 中断服务程序只有由用户程序把中断服务程序标号(名称)与中断事件联系起来,并且开放系统中断后才能进入等待中断并随时执行的状态,多个中断事件可以连接同一个中断服务程序;一个中断服务程序只能连接一个中断事件,中断服务程序也可由用户程序取消与中断事件的连接;队列中的特定中断事件可以被指令取消;也可用指令禁止全部中断 。


AQD008

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 3829回
  • 年度积分:6965
  • 历史总积分:110360
  • 注册:2020年3月27日
发表于:2011-05-27 12:41:57
9楼

PLC跳转指令.就是程序扫描到某一指令时。自动跳转到在事先编制好另一段的程序。

中断指令则是程序执行到某一阶段。接到中断申请。将当前数据存储。等待中断停止指令的到来。会数据继续向下执行程序。

陌上尘

  • 精华:1帖
  • 求助:11帖
  • 帖子:20帖 | 939回
  • 年度积分:0
  • 历史总积分:5186
  • 注册:2010年5月12日
发表于:2011-05-31 08:23:33
10楼

二楼高手说的好

 

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-06-02 09:52:52
11楼
同意2楼说法,再补充一点:跳转指令执行后,是不会自动返回主程序的,必须再有一条跳转指令,才能跳转到指定的地址运行。跳转指令又分无条件转移和有条件转移二种。而中断,执行完后会自动返回主程序原处,继续执行主程序。

a332329107

  • 精华:1帖
  • 求助:5帖
  • 帖子:340帖 | 6056回
  • 年度积分:13
  • 历史总积分:24395
  • 注册:2011年5月08日
发表于:2011-06-02 21:38:57
12楼

上面的说的很好 我再给大家补一个指令集

 

三菱FX2N应用指令集
程序流程应用指令
1、FNC(CJ) 跳转指令
2、FNC01 FNC02 FNC06(CALL SRET FEND) 调用子程序
3、FNC03 FNC04 FNC05(IRET EI DI)中断处理
4、FNC07(WDT)看门狗定时器
5、FNC08 FNC09(FOR NEXT)程序循环
数据传送、区域比较应用指令
1、FNC10(CMP) 比较
2、FNC11(ZCP)区域比较
3、FNC12(MOV) 传送应用指令
4、FNC13 (SMOV)数据移位应用指令
5、FNC14(CML)数据反相传送应用指令
6、FNC15 (BMOV) 成批传送
7、FNC16 (FMOV) 多点传送应用指令
8、FNC17 (XCHP) 数据交换
9、FNC18(BCD) 将BIN转换为BCD
10、FNC19(BIN) 将BCK转换为BIN
四则运算逻辑应用指令
1、FNC20(ADD) 加法应用指令
2、FNC21(SUB) 减法
3、FNC22(MUL) 二进制乘法
4、FNC23(DIV) 二进制除法
5、FNC24(INC) 增加
6、FNC25(DEC) 减少
7、FNC26(WAND) 逻辑与
8、FNC27(WOR) 逻辑或
9、FNC28(WXOR) 二进制互斥逻辑异或
10、FNC29(NEG) 求补码
旋转、位移应用指令
1、FNC30、FNC31(RORP、ROLP)左、右旋转
2、FNC32 FNC33(RCRP、RCLP)包含进位标识的左、右旋转
3、FNC34、FNC35(SFTRP、SFTLP)位数据左、右移
4、FNC36、FNC37(WSFRP、WSFLP)字符数据左、右移
5、FNC38、FNC39(SFWRP、WFRDP)字符数据位移写入与读出
数据处理应用指令
1、FNC40(ZRST)区域数据复位
2、FNC41(DECO)译码
3、FNC42(ENCO)编码
4、FNC43(SUM)ON位总数计算
5、FNC44(BON)ON位判断
6、FNC45(MEAN)平均值
7、FNC46、FNC47(ANS、ANR)警报线圈的输出与复位
8、FNC48(SQR)开平方
高速处理应用指令
1、FNC50(RER)输入/输出信号立即处理
2、FNC51(REFF)改变输入端响应时间
3、FNC52(MTP)矩阵输入
4、FNC53(DHSCS)高速计数器比较设置
5、FNC54(DHSCR)高速计数器比较复位
6、FNC55(DHSZ)高速计数器区域比较
7、FNC56(SPD)脉冲密度
8、FNC57(PLSY)脉冲输出
9、FNC58(PWM)脉冲宽度调制
10、FNC59(PLSR)加减速脉冲输出
宏应用指令
1、FNC60(IST)步进运转状态设定
2、FNC61(SER)多笔数据比较
3、FNC62(ABSD)绝对式控制
4、FNC63(INCD)相对式控制
5、FNC64(TIMR)调整式定时器
6、FNC65(STMR) 特殊定时器
7、FNC66(ALTP)交替信号
8、FNC67(RAMP)求斜率
9、FNC69(SORT)数据排序
外部设定显示应用指令
1、FNC70(TKY)10个按钮输入
2、FNC71(HKY)16个按钮键输入
3、FNC72(DSW)指拨开关
4、FNC73(SEGD)7段数码管译码
5、FNC74(SEGL)7段数码扫描
6、FNC75(ARWS)箭头开关外部设定调整

电仪人生

  • 精华:0帖
  • 求助:0帖
  • 帖子:36帖 | 617回
  • 年度积分:0
  • 历史总积分:4586
  • 注册:2009年2月12日
发表于:2011-06-04 17:27:49
13楼

PLC中的跳转是指在满足跳转条件之后的各个扫描周期中,PLC将不再扫描执行跳转指令与跳转指针P*间的程序,即跳到以指针P*为入口的程序段中执行。直到跳处于被跳过程序段中的输出继电器、辅助继电器、状态器由于该段程序不再执行,即使梯形图中涉及的工作条件,它们的工作状态将保持跳转发生前的状态不变。被跳过程序段中的时间继电器及计数器,无论其是否具有掉电保持功能,由于相关程序停止执行,它们的现实值寄存器被锁定,跳转发生后及计数、计时值保持不变,在跳转终止,程序接续执行时,计时计数将继续进行。计时、计数器的复位指令具有优先权,即使复位指令位于被跳过的程序段中,执行条件满足时,复位工作也将执行。转的条件不再满足,跳转停止进行。
使用跳转指令的几点注意:

由于跳转指令具有选择程序段的功能。在同一程序且位于因跳转而不会被同时执行程序段中的同一线圈不被视为双线圈。
可以有多条指令使用同一标号。但在同一程序中不允许存在二个相同的标号。
标号一般设在相关的跳转指令之后,也可设在跳转指令之前。
使用CJ(P)指令时,跳转只执行一个扫描周期,但若用辅助继电器M8000作为跳转指令的工作条件,跳转就成为无条件跳转。
跳转可用来执行程序初始化工作。
在编写跳转程序的指令表时,标 号需占一行。
PLC中的中断工作方法:
是指主程序的执行过程中,中断主程序的执行去执行中断子程序。为某些特定的控制功能而设定的。
特点:要求响应时间小于机器的扫描周期。因而,中断子程序都不能由程序内安排的条件引出。
中断源:能引起中断的信号叫做中断源。FX2n系列PLC有三种中断源(也叫三类中断),即外部中断、计数器中断和定时器中断。
中断编号与中断相关的辅 助继电器 :
1)外部中断信号从输入端送入,可用于机外突发随机事件引起的中断。
2)定时中断是机内中断,使用定时器引出,多用于周期性工作场合。
3)多个突发事件出现时处理的先后顺序即是中断优先权。FX2系列PLC一共可安排9个中断,其优先权依中断编号的大小决定。
4)号数小的中断优先权高;外部中断的优先权较高。
对可以响应中断的程序段用允许中断指令EI及不允许中断指令DI指令标示出来。
全程中断——在程序的任何地方都可以响应中断。
如果机器安排的中断比较多,而这些中断又不一定需同时响应时,还可以通过特殊辅助继电器M8050~M8058实现中断的选择。并且规定:当这些特殊辅助继电器通过控制信号被置1时,其对应的中断被封锁。

中断指令的应用:1)中断指令作为一种子程序安排 在主程序结束指令FEND之后。
2)主程序中允许中断指令EI及不 允许中断指令DI间的区间表示可 以开放中断的程序段。
3)主程序中有多个中断子程序时, 中断标号和距其最近的一处中断返回指令构成一个中断程序。
4)FX2系列PLC可实现不多于二级的中断嵌套。
5)一次中断请求,中断程序一般仅能执行一次。
中断指令的执行过程及应用实例
1.外部中断子程序
外部中断指令常用来引入发生频率高于机器扫描频率的外控信号,或用于处理那些需快速响应的信号。
2.时间中断子程序

 

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2011-06-05 00:26:59
14楼

简单的来说,跳转是可控,而中断只能是激活,但何时触发不可控。

 

跳转往往是忽略部门程序,缩短了扫描;而中断结束后还会回来,扫描时间反而会增长。

张洪宇

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 109回
  • 年度积分:0
  • 历史总积分:275
  • 注册:2003年3月16日
发表于:2011-06-10 11:25:31
15楼

这样的问题也拿这上面来讨论?

djgyy

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1200回
  • 年度积分:100
  • 历史总积分:20331
  • 注册:2020年6月23日
发表于:2011-06-11 13:48:59
16楼

跳转指令,你要执行到了才会跳转。也就是要等扫描周期扫到了,才会去执行;

而中断,当中断发生时,停止当前扫描进行中断处理.

nananbeibei

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1072回
  • 年度积分:0
  • 历史总积分:7313
  • 注册:2009年1月07日
发表于:2011-06-13 14:10:55
17楼

1:跳转指令是扫描到后,跳转到指针所指引的位置,继续执行,中间段的程序就跳过,不执行了,可以缩短程序的扫描周期。

2:中断是扫描到后,执行中断程序,中断程序结束后,回到跳转前的位置,继续执行接下来的程序。跳转指令,跳到指针位置执行,执行到返回指令再返回跳转指令的下一条继续执行。 中断有很多种,有些并不是扫描到的。反正总是执行完后继续执行接下来的程序。

一品黄山

  • 精华:11帖
  • 求助:0帖
  • 帖子:754帖 | 9779回
  • 年度积分:0
  • 历史总积分:48262
  • 注册:2004年3月31日
发表于:2011-06-17 08:22:15
18楼
跳转指令,跳到指针位置执行,执行到返回指令再返回跳转指令的下一条继续执行。
中断指令,当你定义好中断事件并开启中断后,一旦满足中断,中断子程序就会开启,注意中断子程序与普通子程序的区别,中断子程序开启后只能扫描一次就结束了,而子程序没有这个限制

gaoqiang128_well

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 25回
  • 年度积分:0
  • 历史总积分:285
  • 注册:2011年6月10日
发表于:2011-06-17 08:58:07
19楼
1 1:跳转指令:当条件满足时,自动跳转所在标号的程序行,开始执行,意味着,跳过中间的程序,一下子,跳到另外的一个地方执行了。 2 中断指令则是程序执行到某一阶段。接到中断申请。将当前数据存储。等待中断停止指令的到来。会数据继续向下执行程序。 它们的区别是 1 程序流程转移发生时机的可控制性不同 2 流程转移时处理方式不同 3 其各自产生运行流程改变的原因不同 4 实现的限制条件不同

zxjjynl

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 561回
  • 年度积分:0
  • 历史总积分:2626
  • 注册:2011年3月06日
发表于:2011-06-23 22:20:52
20楼

跳转指令就是当程序执行到这个位置时,才会执行,就是在程序循环扫描的过程中每个周期要扫描到才会在执行。而且跳转指令的指针返回的点不一定是跳转的点.

中断不一样,中断是在始终扫描的时候申请的,是外部触发或者内部程序触发的。没有周期性。而且,当执行完中断指令后程序会返回中断点继续执行主程序。


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页