收藏 分享(赏)

中断控制指令.ppt

上传人:知足长乐 文档编号:1217004 上传时间:2018-06-18 格式:PPT 页数:38 大小:534.50KB
下载 相关 举报
中断控制指令.ppt_第1页
第1页 / 共38页
中断控制指令.ppt_第2页
第2页 / 共38页
中断控制指令.ppt_第3页
第3页 / 共38页
中断控制指令.ppt_第4页
第4页 / 共38页
中断控制指令.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、中断控制指令,间隔定时器中断功能,中 断 的 优 先 级,中 断 控 制 指 令,外部输入中断功能,一、外部输入中断功能,1. 外部输入中断的输入点,CPM1A系列20、30、40点的主机为0000300006。,CPM1A系列10点的主机为00003和00004。,中断输入点的编号,00003:中断输入0 00004:中断输入100005:中断输入2 00006:中断输入3,2. 外部输入中断的优先级,中断输入0 中断输入1 中断输入2 中断输入3,3. 外部输入中断的模式,(1)输入中断模式,在中断输入点非屏蔽时,只要中断输入点接通即产生中断响应;在该点屏蔽时,待解除屏蔽时再响应中断。,对

2、中断输入点进行高速计数,当达到设定次数时产生中断,且停止计数。计数范围065535、最高1KHz。,(2)计数中断模式,计数器的设定值和(当前值-1)存放在指定的通道中。,4. 外部输入中断子程序的编号,中断输入0 (输入点00003): 子程序号为000 中断输入1 (输入点00004): 子程序号为001 中断输入2 (输入点00005): 子程序号为002 中断输入3 (输入点00006): 子程序号为003,当不使用中断时,000003可作为普通子程序号.,注意:不论哪种模式的中断,其子程序必须用SBN/RET指令定义,且必须放在主程序之后、END之前。,5. 外部输入中断的设定,输入

3、点00003 ( 0:普通输入点 1:中断输入点 ),输入点00004 ( 0:普通输入点 1:中断输入点 ),输入点00005 ( 0:普通输入点 1:中断输入点 ),输入点00006 ( 0:普通输入点 1:中断输入点 ),二、间隔定时器中断功能,1. 间隔定时器,当间隔定时器(递减)定时到,可以不受扫描周期影响,停止主程序而转去执行子程序。,间隔定时器可以实现高精度的定时和中断处理。,2. 间隔定时器的中断模式,(1) 单次中断模式,当间隔定时器定时到,停止定时并产生中断信号,但只执行一次中断。,(2) 重复中断模式,间隔定时器每隔一定时间产生一次中断,停止执行主程序而去执行中断子程序。

4、,3. 间隔定时器的中断处理子程序,不论是何种间隔定时器中断模式,子程序号都是由指令STEM来确定的。,在执行中断子程序的同时,定时器的当前值又恢复为设定值并重新开始定时,直到定时器停止计数为止。,三、中断的优先级,外部输入中断0外部输入中断1外部输入中断2外部输入中断3间隔定时器中断 高速计数器中断.,在执行某中断子程序时,若发生了优先级更高的中断,则立即停止执行当前的中断子程序,而转去执行优先级更高的子程序。,该子程序执行完毕再返回断点处继续执行程序。,同时发生了几个中断请求信号时,先响应优先级最高的中断。,四、中断控制指令,1. 中断控制指令,功能:当执行条件为ON时,根据CC的内容执行

5、6种功能中的一种。,D:设定输入点屏蔽/非屏蔽 CC:控制码,输入点00003 ( 0:不屏蔽 1:屏蔽 ),输入点00004 ( 0:不屏蔽 1:屏蔽 ),输入点00005 ( 0:不屏蔽 1:屏蔽 ),输入点00006 ( 0:不屏蔽 1:屏蔽 ),CC= 000,(屏蔽/不屏蔽输入点 ),输入点00003 ( 0:不清除 1:清除 ),输入点00004 ( 0:不清除 1:清除 ),输入点00005 ( 0:不清除 1:清除 ),输入点00006 ( 0:不清除 1:清除 ),CC= 001,输入点00003 ( 0:不屏蔽 1:屏蔽),输入点00004 ( 0:不屏蔽 1:屏蔽),输入

6、点00005 ( 0:不屏蔽 1:屏蔽),输入点00006 ( 0:不屏蔽 1:屏蔽),CC= 002,清除/不清除输入中断记忆,读出中断输入点当前状态,输入点00003 ( 0:更新 1:不更新 ),输入点00004 ( 0:更新 1:不更新 ),输入点00005 ( 0:更新 1:不更新 ),输入点00006 ( 0:更新 1:不更新 ),CC= 003,CC = 100 (D=000),屏蔽所有中断。若有中断信号先记忆,待解除屏蔽时立即响应.,CC = 200 (D=000),解除所有中断屏蔽,恢复到执行屏蔽所有中断之前的状态,但不解除单独中断类的中断。,更新/不更新计数设定值,屏蔽所有

7、中断输入点,解除所有中断屏蔽,外部输入中断举例,C(1100),当00003 接通时产生中断,停止执行主程序、转去执行子程序000使20000 ON,返回执行主程序使01000 ON。,当00004接通产生中断时,转去执行子程序001使20001 ON,返回执行主程序使01000 OFF。,设DM6628为0011,即00003和00004为中断输入点。,外部输入计数中断举例,计数器设定值更新,00004为更新,设DM6628为0010,即00004为中断输入点。,在PLC上电后的第一个扫描周期,执行一次MOV指令,将#00FA(十进制250)传送到241通道(存放00004中断输入点计数设定

8、值)。,程序分析,执行一次INT指令,设置输入中断1为计数中断模式,设定00004输入点为非屏蔽。,当00004输入点接通250次时产生中断,停止执行主程序、并转去执行子程序001。,执行子程序001,使20000 ON。返回主程序使TIM000开始定时。经过5秒TIM000 ON、使01000 ON。,外部输入计数中断举例(续),2. 间隔定时器中断控制指令,功能:当执行条件为ON时,根据C1的内容执行4种功能中的一种。,C1 :控制码 C2 、C3:设定值(C2 、C3的值取决于C1 ),(1) C1=000 启动单次中断模式 C2若为常数(BCD 00009999)时,则为定时器的设定值

9、。时间间隔固定为1ms 。 实际定时时间即为该常数值,单位为毫秒。 C3为子程序号。, C2若为通道号,则其内容(BCD 00009999)为 定时器的设定值。 时间间隔由C2+1的内容(BCD 00050320,对应0.532ms)确定,实际定时时间为: C2的内容(C2+1)的内容0.1ms,故实际定时时间的范围是0.5319968 ms。 C3为子程序号。,(2) C1=003 启动重复中断模式 C2、C2+1、C3的意义及定时时间的计算同上.,(3) C1=006 读出定时器的当前值 可读出计数器减1的次数、时间间隔和从上一次减1到当前时刻的时间。 读出的数据分别放在C2、C2+1、C

10、3中,由此计算出定时开始到当前时刻的时间为: C2的内容(C2+1)的内容+C3的内容0.1ms,(4) C1=010 停止间隔定时器工作 此时C2、C3固定为000。,使用指令STEM时比较烦琐,必须认真核对指令的操作数设置是否正确。,程序分析,间隔定时器单次中断举例,间隔定时器的定时设定值为200100.1=200ms。 子程序号为010。,PLC上电即传送间隔定时器的设定值。,在00000为ON时执行指令STIM,确定中断模式(单次),并启动间隔定时器开始定时。,间隔定时器单次中断举例(续),当达到设定时间200ms时,产生中断并转去执行010号子程序,使20000 ON。,返回去执行主

11、程序使01000 ON、并使TIM000开始定时,5秒后01000 OFF。,间隔定时器单次中断举例(续),欲再次实现单次中断,需要再令触点00000OFFON一次。,间隔定时器重复中断举例,程序分析,PLC上电后执行STIM指令,确定间隔定时器为重复中断模式,间隔定时器的定时值为50ms,子程序号为005。,间隔定时器重复中断举例(续),当间隔定时器达到设定时间50ms时,产生中断并转去执行005号子程序,同时定时器的当前值又恢复为设定值并重新开始定时。,再过50 ms时又产生一次中断。,间隔定时器重复中断举例(续),第一次中断执行子程序使20001 ON、20000 OFF,返回去执行主程

12、序使01001 ON 50ms、01000 OFF 50ms 。,第二次中断执行子程序时20000 ON、20001 OFF,所以01000 ON 50ms、01001 OFF 50ms 。,间隔定时器重复中断举例(续),可见该段程序的功能是:01000和01001均能产生0.1S的脉冲, 直到间隔定时器停止计数为止。,间隔定时器的定时时间最小可达0.5ms,所以用间隔定时器可实现高精度的定时控制。,STIM指令的各种设定举例,STIM指令的设定举例(续), 自00000OFF ON后,过400ms产生中断,转去执行子程序002,使20000 ON。,程序分析,STIM指令各种设定举例(续),

13、 20000 ON,执行主程序使CNT000开始计数(或定时)。,STIM指令的各种设定举例(续), 经过200 ms CNT000 ONCNT000和20000复位。自此再过200 ms产生第二次中断,计数器CNT000重复上述定时过程。,STIM指令的各种设定举例(续),可见从第一次响应中断之后,每过200 ms ,CNT000 ON一次。,STIM指令的各种设定举例(续), 当00001OFF ON时执行第二个STIM指令。可从屏幕上看到DM0000DM0002的内容,据此可以计算定时器的当前值。,STIM指令的各种设定举例(续), 当00002ON时执行第三个STIM指令。这时停止间隔

14、定时器的定时。在断开00002后,间隔定时器可恢复工作。,中断控制指令小结,(1) 两种子程序的相同点,子程序都必须由指令SBN和RET来定义。,子程序都要放在主程序之后、END之前。, 当SBS指令的执行条件不满足时、或没产生中断信号时,CPU都不扫描子程序。,1. 普通子程序调用与中断功能子程序的区别,(2) 两种子程序调用上的区别, 在子程序调用的控制方式上的区别。,普通子程序的调用是受程序的控制,即必须在主程序中安排SBS指令,当CPU扫描到SBS指令、且其执行条件满足时调用子程序。,中断处理子程序的调用不是由程序直接控制的,在中断控制指令设定之后,是否调用子程序取决于有无中断请求信号

15、。而且,对外部输入中断,若中断被屏蔽,即使有中断请求信号也不能立即执行中断子程序。, 两种子程序执行完毕返回地址的区别。,用SBS指令调用子程序时,执行完毕返回地址只能是与指令SBS相邻的下一条指令。,中断处理子程序执行完毕也要返回断点处,但其断点地址是随机的。, 响应各子程序的优先级问题。,用指令SBS调用的各子程序没有优先级问题。按扫描顺序执行程序,满足条件的SBS即调用子程序 。,由于各种中断存在优先级,所以各中断处理子程序在执行时有优先顺序。, 外部输入中断处理子程序的编号是固定的。,2. 中断控制功能,(1) 关于外部输入中断, 使用外部输入中断时要使用指令INT,以确定中断模式、中断输入点的状态等。,(2) 关于间隔定时器中断, 使用外部输入中断时要在DM6628中进行必要的设定,否则使用无效。, 使用间隔定时器中断时不必在DM区设定。, 使用间隔定时器中断时,要用指令STEM确定间隔定时器的模式、定时器的设定值等。,3. 使用中断功能时注意的问题, 在中断处理子程序内部不可使用指令SBS,即中断处理子程序不可调用普通子程序。, 不可用SBS指令去调用中断处理子程序,即普通子程序不可调用中断处理子程序。, 中断处理子程序内部,不可以调用别的中断处理子程序。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 研究生课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报