1、 Date:11/8/2022 Page:1 第五章 CPM1APLC一、一、子程序控制子程序控制指令指令1 1、在编写、在编写PLCPLC的应用程序时,的应用程序时,有的程序段需多次重复使用。有的程序段需多次重复使用。这样的这样的程序段可以编成一个程序段可以编成一个子程序子程序,在满足一定条件时,在满足一定条件时,中断中断主程序而主程序而转转去执行子程序去执行子程序,子程序执行完毕,再,子程序执行完毕,再返回断点处返回断点处继续继续执行主程序执行主程序。2 2、另外,、另外,有的程序段需多次使用,且程序段的结构不变,但每次输有的程序段需多次使用,且程序段的结构不变,但每次输入和输出操作数不同
2、。入和输出操作数不同。对这样的程序段也可以编成一个子程序,在对这样的程序段也可以编成一个子程序,在满足执行条件时,中断主程序的执行而转去执行子程序,满足执行条件时,中断主程序的执行而转去执行子程序,并且每次并且每次调用时赋予该子程序不同调用时赋予该子程序不同的的输入和输出操作数输入和输出操作数,子程序执行完毕再,子程序执行完毕再返回断点返回断点处继续执行主程序。处继续执行主程序。第六讲第六讲 CPM1ACPM1A的子程序控制与中断控制指令的子程序控制与中断控制指令 Date:11/8/2022 Page:2 第五章 CPM1APLC一、一、子程序控制子程序控制指令指令 1 1子程序调用指令子程
3、序调用指令SBSSBS(9191)/SBS/SBS(9191)2 2子程序定义指令子程序定义指令SBNSBN(9292)/SBN/SBN(9292)3 3子程序返回指令子程序返回指令RETRET(9393)/RET/RET(9393)4.4.宏指令宏指令MCROMCRO(9999)/MCRO/MCRO(9999)Date:11/8/2022 Page:3 第五章 CPM1APLC1 1子程序调用指令子程序调用指令SBSSBS(9191)/SBS/SBS(9191)格式:格式:SBS N SBS N 符号:符号:N N:子程序编号子程序编号。其取值为。其取值为00009999。功能:调用编号为功
4、能:调用编号为N N的子程序。的子程序。主程序中主程序中调用子程序调用子程序的的次数不受限制次数不受限制,子程序子程序还可以还可以调用其它调用其它的的子程序子程序,但,但不可以调用本身。不可以调用本身。Date:11/8/2022 Page:4 第五章 CPM1APLC2 2子程序定义指令子程序定义指令SBNSBN(9292)/SBN/SBN(9292)格式:格式:SBN N SBN N 符号:符号:N N:子程序编号子程序编号。其取值为。其取值为00009999。功能:功能:SBNSBN定义子程序的定义子程序的开始,不需要执行条件。开始,不需要执行条件。子程序的子程序的编号不可重复编号不可重
5、复。Date:11/8/2022 Page:5 第五章 CPM1APLC3 3子程序返回指令子程序返回指令RETRET(9393)/RET/RET(9393)格式:格式:RET RET 符号:符号:功能:功能:RETRET表示表示子程序结束。子程序结束。RETRET指令指令不带操作数不带操作数,也不需要执行条件。也不需要执行条件。SBNSBN和和RETRET指令要指令要成对使用成对使用,组成一个,组成一个完整完整的的子程序。子程序。Date:11/8/2022 Page:6 第五章 CPM1APLC4.4.宏指令宏指令MCROMCRO(9999)/MCRO/MCRO(9999)格式:格式:MC
6、RO N MCRO N 符号:符号:S1 S1 S2 S2N N:子程序编号子程序编号。其取值为。其取值为00009999。S1S1:输入开始输入开始通道。通道。取值范围取值范围IRIR、HRHR、ARAR、LRLR、TCTC、DMDM、*DMDM。S2S2:输出开始通道输出开始通道。取值范围同。取值范围同S1S1。Date:11/8/2022 Page:7 第五章 CPM1APLC4.4.宏指令宏指令MCROMCRO(9999)/MCRO/MCRO(9999)5.5.功能:功能:用一个用一个子程序子程序N N代替代替数个相同结构数个相同结构但但操作数不同的子程序操作数不同的子程序。6.6.当
7、执行条件为当执行条件为ONON时,时,停止停止执行主程序,将输入通道执行主程序,将输入通道S1S1S1+3S1+3的的内容复制到通道内容复制到通道SR232SR232SR235SR235中;将输出通道中;将输出通道S2S2S2+3S2+3的内容的内容复复制制到通道到通道SR236SR236SR239SR239中,然后中,然后调用子程序调用子程序N N。7.7.子程序子程序执行完毕执行完毕,再将通道,再将通道SR236SR236SR239SR239中中的内容的内容传送传送到到输出输出通道通道S2S2S2+3S2+3中,并返回到中,并返回到MCROMCRO指令的指令的下一条语句下一条语句,继续执继
8、续执行主程行主程序。序。Date:11/8/2022 Page:8 第五章 CPM1APLC 使用子程序调用程序时要注意以下几点:使用子程序调用程序时要注意以下几点:(1 1)所有子程序都必须放在主程序之后和)所有子程序都必须放在主程序之后和ENDEND指令之前。指令之前。(2 2)主程序调用各子程序主程序调用各子程序的的次数没有限制。次数没有限制。(3 3)子程序可以嵌套调用。子程序可以嵌套调用。即子程序中即子程序中又调用别的子程序。又调用别的子程序。但是嵌套但是嵌套不能超过不能超过1616级,级,且子程序且子程序不能自调用。不能自调用。Date:11/8/2022 Page:9 第五章 C
9、PM1APLC宏指令调用子程序的例子宏指令调用子程序的例子 Date:11/8/2022 Page:10 第五章 CPM1APLC二、中断控制指令二、中断控制指令 中断:指在中断:指在外部或内部触发信号外部或内部触发信号的作用下,的作用下,中断主程序的执行而转去执行一个预先编写的子程序,中断主程序的执行而转去执行一个预先编写的子程序,即中断处理子程序即中断处理子程序(也称中断服务程序也称中断服务程序),中断处理子程序执行完毕中断处理子程序执行完毕再返回断点处再返回断点处继续执行继续执行主程主程序的现象。序的现象。Date:11/8/2022 Page:11 第五章 CPM1APLC二、中断控制
10、指令二、中断控制指令 中断功能作用:中断功能作用:在在实际控制过程中,实际控制过程中,控制系统中有些控制系统中有些随时可能发生随时可能发生的的情况需要情况需要PLCPLC处理处理;具有具有中断功能中断功能的的PLCPLC可以可以不受扫描周期不受扫描周期的的影响;影响;及时及时将将这种随机这种随机的的信息输入到信息输入到PLCPLC中中;提高提高PLCPLC对对外部信息外部信息的的响应速度。响应速度。Date:11/8/2022 Page:12 第五章 CPM1APLC 1 1外部输入中断外部输入中断 CPMlACPMlA系列系列PLCPLC中,中,00003000030000600006这四个
11、点是外部输入中断这四个点是外部输入中断的输入点。外部发生的输入点。外部发生的的事件所产生事件所产生的的信号信号通过通过中断输入点送中断输入点送入入PLCPLC,当某个中断输入点为,当某个中断输入点为ONON或或ONON一定次数时一定次数时,产生,产生中断中断请求信号。请求信号。当不使用当不使用中断功能时,中断功能时,这些点作为这些点作为普通输普通输入点使用。入点使用。外部输入中断外部输入中断有有输入中断输入中断和和计数中断计数中断两种模式。两种模式。二、中断控制指令二、中断控制指令 常见中断有三种形式:常见中断有三种形式:外部输入中断、间隔定时器中断和高速计数器中断。外部输入中断、间隔定时器中
12、断和高速计数器中断。Date:11/8/2022 Page:13 第五章 CPM1APLC(1 1)外部输入中断模式。)外部输入中断模式。1 1)输入中断模式)输入中断模式 在在非屏蔽非屏蔽情况下,只要情况下,只要中断输入点接通中断输入点接通则产生则产生中断响应。中断响应。若若在屏蔽在屏蔽情况下,即使中断输入点接通情况下,即使中断输入点接通也不能产生中断也不能产生中断响应,响应,但该中断信号但该中断信号被记忆下,被记忆下,待屏蔽解除后待屏蔽解除后立即产生中断。立即产生中断。若屏蔽解除后若屏蔽解除后不希望响应不希望响应所记忆的中断,可用所记忆的中断,可用指令清除指令清除该记忆。该记忆。Date:
13、11/8/2022 Page:14 第五章 CPM1APLC2 2)计数器中断模式)计数器中断模式 对对中断输入点接通中断输入点接通的的次数次数进行进行高速计数高速计数(减计数减计数),当当达到设定达到设定的的次数次数时产生时产生中断,中断,计数器计数器停止计数、中断被屏停止计数、中断被屏蔽。蔽。若想若想再产生中断需使用指令再产生中断需使用指令进行设定。进行设定。计数器计数器的的计数范围计数范围0 06553565535,计数频率,计数频率最高为最高为lkHzlkHz。对对计数模式计数模式中断,中断,CPMlACPMlA系列规定用系列规定用通道通道SR240SR240243243(分别对应(分
14、别对应00003000030000600006输入点)存放输入点)存放计数器设定值。计数器设定值。Date:11/8/2022 Page:15 第五章 CPM1APLC 外部输入点外部输入点对应对应固定固定的的中断处理子程序中断处理子程序编号:编号:中断输入中断输入0(0(输入点输入点00003)00003):子程序号为:子程序号为000000 中断输入中断输入1(1(输入点输入点00004)00004):子程序号为:子程序号为001001 中断输入中断输入2(2(输入点输入点00005)00005):子程序号为:子程序号为002002 中断输入中断输入3(3(输入点输入点00006)0000
15、6):子程序号为:子程序号为003003 优先级:优先级:中断输入中断输入00中断输入中断输入11中断输入中断输入22中断输入中断输入3 3。不使用中断功能,这些子程序号可用作不使用中断功能,这些子程序号可用作普通子程序编号普通子程序编号。中断处理子程序也用中断处理子程序也用SBNSBN定义其开始,用定义其开始,用RETRET定义其结束定义其结束。中断处理子程序中断处理子程序也必须放在主程序之后和也必须放在主程序之后和ENDEND之前。之前。Date:11/8/2022 Page:16 第五章 CPM1APLC 在在外部输入中断外部输入中断使用之前,要用使用之前,要用编程器对编程器对DM662
16、8DM6628进行设定,进行设定,若若不进行设定不进行设定就就没有中断功能。没有中断功能。DM6628DM6628设定的内容和含义如图设定的内容和含义如图 Date:11/8/2022 Page:17 第五章 CPM1APLC(2 2)外部输入中断控制指令)外部输入中断控制指令 :INT:INT(8989)/INT/INT(8989)格式:格式:INT C1 INT C1 符号:符号:000000 C2 C2 C1C1:控制码。其取值为:控制码。其取值为000000003003,100100,200200。C2C2:控制数据。:控制数据。C1=002C1=002时时取值范围取值范围IRIR、H
17、RHR、ARAR、LRLR、TCTC、DMDM、*DMDM C1002C1002时时取值范围取值范围DMDM、*DMDM、#0000#0000#000F#000F。功能:功能:当执行条件当执行条件ONON时,根据时,根据C1C1的数据的数据完成完成6 6种功能种功能中一种。中一种。Date:11/8/2022 Page:18 第五章 CPM1APLCC1C1是控制码,其取值和含义:是控制码,其取值和含义:1 1)C1=000C1=000:对对00003000030000600006输入点输入点屏蔽不屏蔽。是否屏蔽,屏蔽不屏蔽。是否屏蔽,由由C2C2的的bit00bit00bit03bit03位
18、来决定位来决定.2 2)C1=001C1=001:清除不清除清除不清除输入中断记忆。输入中断记忆。是否清除,是否清除,由由C2C2的的bit00bit00bit03bit03位来决定。(位来决定。(1/0:1/0:清除不清除清除不清除)3)C1=0023)C1=002:读出读出00003000030000600006输入点的输入点的当前屏蔽状态写入当前屏蔽状态写入C2C2中,为中,为屏蔽屏蔽时时C2C2的的对应位为对应位为1 1。Date:11/8/2022 Page:19 第五章 CPM1APLC4 4)C1=003C1=003:更新不更新更新不更新00003000030000600006输
19、入点的计数器设输入点的计数器设定值。定值。是否更新设定值,是否更新设定值,由由C2C2的的bit00bit00bit03bit03位来决定,位来决定,(1/0:1/0:不更新更新不更新更新)5 5)C1=100C1=100:屏蔽屏蔽所有中断(所有中断(包括外部输入中断、间隔定时器包括外部输入中断、间隔定时器中断和高速计数器中断中断和高速计数器中断)。屏蔽期间若有中断请求将不)。屏蔽期间若有中断请求将不响应,但响应,但可记忆可记忆各种中断信号,各种中断信号,待屏蔽解除待屏蔽解除时时立即响应立即响应中断。中断。6 6)C1=200C1=200:解除:解除屏蔽所有中断,恢复到执行屏蔽所有中断,恢复到
20、执行“屏蔽所有中断屏蔽所有中断”之前的状态,但不解除各个中断自己的屏蔽字(如之前的状态,但不解除各个中断自己的屏蔽字(如C1=000C1=000时,时,INTINT写入的屏蔽字)。写入的屏蔽字)。Date:11/8/2022 Page:20 第五章 CPM1APLC注:注:C1=100C1=100和和C1=200C1=200时,时,C2=0000C2=0000为固定设置;为固定设置;屏蔽所有中断与解除屏蔽所有中断应屏蔽所有中断与解除屏蔽所有中断应成对使用成对使用;不是十分必要,不是十分必要,一般不要使用屏蔽所有中断。一般不要使用屏蔽所有中断。Date:11/8/2022 Page:21 第五章
21、 CPM1APLC 记数器模式外部中断举例。记数器模式外部中断举例。生产线记数装箱程序(局部)。生产线记数装箱程序(局部)。对产品进行记数,对产品进行记数,每到每到5050件便执行装箱件便执行装箱子程序。子程序。0000300003为记为记数脉冲输入点。数脉冲输入点。程序运行前程序运行前首先设定首先设定DM6628=0001DM6628=0001,使输使输入点入点0000300003成为成为中断输入点。中断输入点。1 1部分部分计数器设定值输入,设定值为计数器设定值输入,设定值为5050;2 2部分部分中断控制,中断控制,设定输入点设定输入点0000300003更新,更新,其余输入点其余输入点
22、为为屏蔽状态;屏蔽状态;3 3部分部分中断处理子程序中断处理子程序用来执行装箱子程用来执行装箱子程序,应序,应注意注意的是的是中断输入点中断输入点0000300003对应的中对应的中断处理断处理子程序号是子程序号是000000。Date:11/8/2022 Page:22 第五章 CPM1APLC 2 2间隔定时器中断间隔定时器中断 CPM1ACPM1A有一个有一个间隔定时器,间隔定时器,是是递减计数器,定时时间到递减计数器,定时时间到时,不受扫描时,不受扫描周期的影响,周期的影响,停止执行停止执行主程序并主程序并建立断点,建立断点,立即转去立即转去执行执行中断子程序,中断子程序,实现实现高精
23、度高精度的的定时中断处理。定时中断处理。间隔定时器中断间隔定时器中断有有两种两种工作模式:工作模式:1)1)单触发模式,单触发模式,当规定时间到时,只执行当规定时间到时,只执行一次中断一次中断;2)2)重复中断模式,重复中断模式,每隔一定时间反复执行中断。每隔一定时间反复执行中断。Date:11/8/2022 Page:23 第五章 CPM1APLC间隔定时器中断控制指令:间隔定时器中断控制指令:STIMSTIM(6969)/STIM/STIM(6969)格式:格式:STIM C1 STIM C1 符号:符号:C2C2 C3 C3C1C1:控制码。:控制码。其取值为其取值为000000,003
24、003,006006,010010。C2C2:控制数据:控制数据1 1。取值取值IRIR、HRHR、ARAR、LRLR、DMDM、*DMDM、#。C3C3:控制数据:控制数据2 2。取值取值IRIR、HRHR、ARAR、LRLR、DMDM、*DMDM、#。功能:功能:执行条件为执行条件为ONON时,据时,据ClCl的数据的数据完成完成4 4种种功能中的一种。功能中的一种。C2C2、C3C3的取值根据的取值根据C1C1的状态来决定。的状态来决定。Date:11/8/2022 Page:24 第五章 CPM1APLCC1C1是控制码,其取值和含义如下:是控制码,其取值和含义如下:(1 1)C1=0
25、00 C1=000 启动单次中断模式启动单次中断模式1 1)C2C2若为常数若为常数(BCD(BCD码,码,#0000#0000#9999)#9999)时,为时,为定时器定时器的的设定设定值值。实际。实际定时时间定时时间即为即为该常数值,单位毫秒该常数值,单位毫秒(ms)(ms)。C3C3为子程序号。为子程序号。2 2)C2C2若为通道号,若为通道号,C2C2、C2+1C2+1通道通道决定决定定时时间定时时间,C2C2内容内容为为BCDBCD码,取值码,取值#0000#0000#9999#9999,C2+1C2+1内容为内容为BCDBCD码,取值码,取值#0005#0005#0320#0320
26、。C3C3为子程序号。为子程序号。实际定时时间:实际定时时间:C2C2的内容的内容(C2+1)(C2+1)的内容的内容 0.1ms0.1ms,实实际定时范围:际定时范围:0.50.5319968ms319968ms。Date:11/8/2022 Page:25 第五章 CPM1APLCC1C1是控制码,其取值和含义如下:是控制码,其取值和含义如下:(2)C1=003 (2)C1=003 启动重复中断模式启动重复中断模式C2C2、C2+1C2+1、C3C3的意义及定时时间的计算同上。的意义及定时时间的计算同上。(3)C1=006 3)C1=006 读出定时器的当前值读出定时器的当前值(4)C1=
27、010 (4)C1=010 停止间隔定时器工作。此时停止间隔定时器工作。此时C2C2、C3C3固定为固定为000000。Date:11/8/2022 Page:26 第五章 CPM1APLC 间隔定时器中断举例。间隔定时器中断举例。程序中程序中STIMSTIM指令指令的的控制码控制码C1=003C1=003,启动启动重复重复中断模式;中断模式;控制数据控制数据C2C2为通道号为通道号DM0000DM0000,定时定时时间为时间为6000 6000 100100 0.1=60000ms 0.1=60000ms。满足条件满足条件时每时每隔隔60s60s启动启动中断子程中断子程序序010010一次。
28、一次。Date:11/8/2022 Page:27 第五章 CPM1APLC3 3高速计数器中断高速计数器中断 PLC PLC普通计数器普通计数器的的计数脉冲频率计数脉冲频率受受扫描周期及输入滤波器时扫描周期及输入滤波器时间常数的限制,间常数的限制,不能对高频脉冲信号不能对高频脉冲信号进行计数。进行计数。对高频脉冲信号对高频脉冲信号的的计数,大、中型计数,大、中型PLCPLC是采用是采用特殊功能单元特殊功能单元来处理。来处理。小型小型PLCPLC,例如例如CPMlACPMlA系列,系列,由于其设置了由于其设置了高频脉冲信号的高频脉冲信号的输入点,配合相关输入点,配合相关的的指令指令及及设定设定
29、,处理高频脉冲信号的计数处理高频脉冲信号的计数问题。问题。Date:11/8/2022 Page:28 第五章 CPM1APLC中断处理允许在控制面板上进行启动和停止操作紧凑型的控制器和触摸屏通过NT LINK链接提供了实时的控制数据高速计数器测量包装纸的长度同步脉冲输出匹配传送速度从旋转编码器输入速度反馈信息维持恒定的速度烤箱温度由PLC控制贴上标签筛选次品简便的系统扩展性允许更多的控制加入(1 1)脉冲编码器)脉冲编码器 在自控系统中经常使用在自控系统中经常使用脉冲编码器。脉冲编码器。Date:11/8/2022 Page:29 第五章 CPM1APLC 脉冲编码器脉冲编码器向向PLCPL
30、C输出的输出的信号信号形式:形式:1)1)增减模式,增减模式,有有A A相相B B相(脉冲输入)和相(脉冲输入)和Z Z相(复位)三个相(复位)三个信号,进行信号,进行增减记数;增减记数;2)2)递增模式,递增模式,一个一个单相脉冲信号单相脉冲信号A A和和一个计数复位信号一个计数复位信号Z Z作作为为PLCPLC输入。输入。Date:11/8/2022 Page:30 第五章 CPM1APLC 1)1)增减计数:增减计数:A A00000 00000 B B00001 00001 Z Z00002 00002 a a递增计数:递增计数:当当A A相超前相超前B B相相9090时,在时,在A
31、A、B B相脉冲的前相脉冲的前沿,计数器的当前值沿,计数器的当前值加加1 1;bb递减计数:递减计数:当当B B相超前相超前A A相相9090时,在时,在A A、B B相脉冲的前相脉冲的前沿,计数器的当前值沿,计数器的当前值减减1 1。增减计数的增减计数的最高计数频率是最高计数频率是2.52.5kHzkHz;计数范围计数范围:32767:32767+32767+32767(F0007FFFF0007FFF00007FFF00007FFF,最高位最高位的的F F表示负数表示负数)。Date:11/8/2022 Page:31 第五章 CPM1APLC 2)2)递增计数时,递增计数时,被计数被计数
32、的的高频脉冲信号高频脉冲信号由由PLCPLC的的0000000000输入输入点点输入。输入。这个脉冲信号可以是这个脉冲信号可以是外部被计数的事件提供的信号,外部被计数的事件提供的信号,也可也可以是以是旋转编码器提供的单相脉冲信号。旋转编码器提供的单相脉冲信号。在输入计数脉冲信号的在输入计数脉冲信号的前沿,前沿,高速计数器的当前值高速计数器的当前值加加1 1。递增计数的递增计数的最高计数频率最高计数频率是是5 5kHzkHz;递增计数的递增计数的计数范围计数范围0 065535(0000000065535(0000000000000000FFFF)FFFF)。Date:11/8/2022 Pag
33、e:32 第五章 CPM1APLC(2 2)CPMlACPMlA系列系列PLCPLC高速计数器的设定高速计数器的设定 使用使用高速计数器高速计数器前前必须进行设定。必须进行设定。CPMlACPMlA系列系列PLCPLC,其其设定值设定值放在放在DM6642DM6642中。中。CPCPMlAMlA系列系列PLCPLC,高速计数器高速计数器的的当前值当前值PVPV放在放在SR248SR248和和SR249SR249中。中。SR248SR248存放存放当前值当前值的的低低4 4位,位,SR249SR249存放存放当前值的当前值的高高4 4位。位。Date:11/8/2022 Page:33 第五章
34、CPM1APLC 高速计数器计数时,若从高速计数器计数时,若从上限值上限值开始进行开始进行递增计递增计数就会发数就会发生生上溢出上溢出,当前值为,当前值为0 0FFFFFFFFFFFFFF;若从若从下限开始下限开始进行进行递减计数递减计数就会发生就会发生下溢出,下溢出,当前值为当前值为FFFFFFFFFFFFFFFF。溢出时溢出时计数器计数器停止计数停止计数,记数脉冲记数脉冲到来时到来时,当前值不再变化。当前值不再变化。Date:11/8/2022 Page:34 第五章 CPM1APLC (3)(3)高速计数器复位时,其当前值高速计数器复位时,其当前值PV=0PV=0。CPMlACPMlA系
35、列系列PLCPLC的高速计数器有的高速计数器有两种复位方式。两种复位方式。1)1)硬件复位硬件复位Z Z信号信号+软件软件复位,分两种情况:复位,分两种情况:其一,若高速计数器的其一,若高速计数器的复位标志位复位标志位2520025200先为先为ONON时,在时,在复位复位Z Z信号信号为为ONON的前沿时刻,高速计数器的前沿时刻,高速计数器复位;复位;其二,若复位其二,若复位Z Z信号先信号先ONON时,时,在在2520025200为为0 0N N一个一个扫描周期后,高速扫描周期后,高速计数器复位。计数器复位。TsTs是扫描周期。是扫描周期。Date:11/8/2022 Page:35 第五
36、章 CPM1APLC 2)2)软件复位软件复位 当当2520025200为为ONON一个扫描周期后一个扫描周期后高速计数器复位,高速计数器复位,如图所示。如图所示。另外,当另外,当PLCPLC断电后又通电时高速计数器会自动复位。断电后又通电时高速计数器会自动复位。Date:11/8/2022 Page:36 第五章 CPM1APLC (4 4)高速计数器中断方式)高速计数器中断方式:目标值比较中断和区域比较中断。目标值比较中断和区域比较中断。1 1)目标值比较中断)目标值比较中断:要要建立建立一个一个目标值比较表目标值比较表,目标目标值比较表值比较表占用占用一个区域一个区域的的若干个通道,若干
37、个通道,其中其中首通道存放目标值个数首通道存放目标值个数(BCD(BCD码码)。比较表中最多放比较表中最多放1616个目标值个目标值,每个目,每个目标值占标值占2 2个通道个通道(各存各存放目标值的放目标值的低低4 4位和高位和高4 4位位)。每个目标值每个目标值紧跟紧跟一个中断子程序号,一个中断子程序号,存放存放1616个子程序号个子程序号需需1616个通道个通道,所以,所以目标值比较表最多占用目标值比较表最多占用4848个通道。个通道。目标值比较表中目标值比较表中的数据的数据可用编程器预先写入。可用编程器预先写入。Date:11/8/2022 Page:37 第五章 CPM1APLC 目标
38、值比较中断的执行过程:目标值比较中断的执行过程:高速计数器计数时,高速计数器计数时,若其若其当前值当前值与与比较表中某个目标比较表中某个目标值相值相同,则同,则停止停止执行主程序而转去执行主程序而转去执行与该目标值对应执行与该目标值对应的的子程序。子程序。子程序执行完毕,子程序执行完毕,返回返回到断点处继续执行主程序。到断点处继续执行主程序。Date:11/8/2022 Page:38 第五章 CPM1APLC2 2)区域比较中断区域比较中断 建立一个建立一个区域比较表,分区域比较表,分8 8个区域,每个区域占个区域,每个区域占5 5个通道,个通道,其中其中两个通道两个通道用来用来存放下限值存
39、放下限值的的低低4 4位和高位和高4 4位位,两个通道两个通道用用来存放来存放上限值的低上限值的低4 4位和高位和高4 4位位,一个通道存放与该区域对应一个通道存放与该区域对应的中断子程序号。的中断子程序号。当当实际使用实际使用的比较区域的比较区域不满不满8 8个时个时,要把要把其余区域存其余区域存放上、放上、下限值的通道下限值的通道都置都置0 0,将,将存放子程序号存放子程序号的通道都的通道都置置FFFFFFFF。区域比较表中的数据可用区域比较表中的数据可用编程器预先写入。编程器预先写入。Date:11/8/2022 Page:39 第五章 CPM1APLC 区域比较中断的执行过程:区域比较
40、中断的执行过程:高速计数器计数过程中,若其高速计数器计数过程中,若其当前值落在当前值落在区域区域比较表中某比较表中某个区域时个区域时,即下限值,即下限值高速计数器高速计数器PVPV值值上限值,则停止执上限值,则停止执行主程序而转去执行与行主程序而转去执行与该区域对应的中断处理子程序。该区域对应的中断处理子程序。子程序执行完毕,子程序执行完毕,返回返回到断点处继续执行主程序。到断点处继续执行主程序。Date:11/8/2022 Page:40 第五章 CPM1APLC(5 5)高速计数器的控制指令)高速计数器的控制指令 1.1.操作模式控制指令操作模式控制指令INIINI(6161)/INI/I
41、NI(6161)格式:格式:INI P INI P 符号符号:C C S SP P:端口定义。取值为端口定义。取值为000000。C C:控制数据。取值为控制数据。取值为000000,001001,002002,003003。S S:设定值开始通道。设定值开始通道。取值取值IRIR、SRSR、HRHR、ARAR、LRLR、DMDM、*DMDM。Date:11/8/2022 Page:41 第五章 CPM1APLC功能:功能:执行条件执行条件ONON时,据时,据C C的内容:的内容:启动或停止启动或停止比较表的比比较表的比较;较;更新更新高速计数器当前值;高速计数器当前值;停止停止由由01000
42、01000和和0100101001脉冲输出。脉冲输出。1 1)C=000C=000:启动比较表。启动比较表。2 2)C=001C=001:停止比较表。停止比较表。(上述取值时上述取值时S S固定为固定为000)000)3 3)C=002C=002:改变改变高速计数器当前值,将高速计数器当前值,将S+1S+1(高高4 4位位)、S S(低低4 4位位)内容传到内容传到SR248SR248、249249通道,作为通道,作为高速计数器新的当前值。高速计数器新的当前值。4 4)C=003C=003:停止停止脉冲输出脉冲输出(此时此时S S固定为固定为000000),脉冲输出见,脉冲输出见第七节。第七节
43、。Date:11/8/2022 Page:42 第五章 CPM1APLC2 2、比较表登录指令、比较表登录指令CTBLCTBL(6363)/CTBL/CTBL(6363)格式:格式:CTBL P CTBL P 符号:符号:C C S SP P:端口定义。取值为:端口定义。取值为000000。C C:控制数据。取值为:控制数据。取值为000000,001001,002002,003003。S S:比较表开始通道。:比较表开始通道。取值取值IRIR、HRHR、ARAR、LRLR、DMDM、*DMDM。执行区域比较中断时,比较结果存放在执行区域比较中断时,比较结果存放在AR11AR11通道的通道的0
44、000-0707位。位。功能:功能:执行条件执行条件ONON时,根据时,根据C C内容,内容,登录登录一个一个目标值比较表目标值比较表或或区域区域比较表比较表,并根据,并根据C C的内容,的内容,决定启动比较的方式。决定启动比较的方式。Date:11/8/2022 Page:43 第五章 CPM1APLC2 2、比较表登录指令、比较表登录指令CTBLCTBL(6363)/CTBL/CTBL(6363)C C是控制数据,含义:是控制数据,含义:1 1)C=000C=000:登录一个目标值比较表,并启动比较。登录一个目标值比较表,并启动比较。2 2)C=001C=001:登录一个区域比较表,并启动
45、比较。登录一个区域比较表,并启动比较。3 3)C=002C=002:登录一个目标值比较表,用登录一个目标值比较表,用INIINI启动比较。启动比较。4 4)C=003C=003:登录一个区域比较表,用登录一个区域比较表,用1NI1NI启动比较启动比较 Date:11/8/2022 Page:44 第五章 CPM1APLC采用高速计数器目标值比较中断的例子采用高速计数器目标值比较中断的例子 高速计数器目标值比较中断高速计数器目标值比较中断的程序,的程序,1 1部分部分为为CTBLCTBL设定设定,控制数据,控制数据C C为为000000表示表示登录一个目标值比较表,并启动比较。登录一个目标值比较
46、表,并启动比较。比较表开始通道比较表开始通道S S为为DM0100DM0100。为为目标值比较表目标值比较表,共设定了,共设定了两个目标值两个目标值:#00004000#00004000,对应,对应中断子程序号中断子程序号为为050050;#00800000#00800000,对应中断,对应中断子程序号为子程序号为051051。Date:11/8/2022 Page:45 第五章 CPM1APLC 若高速计数器的若高速计数器的当前值等于目标值当前值等于目标值1 1时,中断主程序执行时,中断主程序执行050050号中号中断程序,把断程序,把#4000#4000传送到传送到HR00HR00中,执行完毕返回断点继续执行主程序。中,执行完毕返回断点继续执行主程序。若高速计数器的若高速计数器的当前值等于目标值当前值等于目标值2 2时,中断主程序执行时,中断主程序执行051051号中号中断子程序,把断子程序,把#0080#0080传送到传送到HR04HR04中。中。当当0000500005为为ONON时,高速计数器复位。时,高速计数器复位。