您好,欢迎访问三七文档
山东建筑大学《电气控制与PLC》范文利2012一、子程序控制指令1、在编写PLC的应用程序时,有的程序段需多次重复使用。这样的程序段可以编成一个子程序,在满足一定条件时,中断主程序而转去执行子程序,子程序执行完毕,再返回断点处继续执行主程序。2、另外,有的程序段需多次使用,且程序段的结构不变,但每次输入和输出操作数不同。对这样的程序段也可以编成一个子程序,在满足执行条件时,中断主程序的执行而转去执行子程序,并且每次调用时赋予该子程序不同的输入和输出操作数,子程序执行完毕再返回断点处继续执行主程序。第六章第六节CPM1A的子程序控制与中断控制指令山东建筑大学《电气控制与PLC》范文利2012一、子程序控制指令1.子程序调用指令SBS(91)/@SBS(91)2.子程序定义指令SBN(92)/@SBN(92)3.子程序返回指令RET(93)/@RET(93)4.宏指令MCRO(99)/@MCRO(99)山东建筑大学《电气控制与PLC》范文利20121.子程序调用指令SBS(91)/@SBS(91)格式:SBSN符号:N:子程序编号。其取值为00~99。功能:调用编号为N的子程序。主程序中调用子程序的次数不受限制,子程序还可以调用其它的子程序,但不可以调用本身。山东建筑大学《电气控制与PLC》范文利20122.子程序定义指令SBN(92)/@SBN(92)格式:SBNN符号:N:子程序编号。其取值为00~99。功能:SBN定义子程序的开始,不需要执行条件。子程序的编号不可重复。山东建筑大学《电气控制与PLC》范文利20123.子程序返回指令RET(93)/@RET(93)格式:RET符号:功能:RET表示子程序结束。RET指令不带操作数,也不需要执行条件。SBN和RET指令要成对使用,从而组成一个完整的子程序。山东建筑大学《电气控制与PLC》范文利20124.宏指令MCRO(99)/@MCRO(99)格式:MCRON符号:S1S2N:子程序编号。其取值为00~99。S1:输入开始通道。取值范围IR、HR、AR、LR、TC、DM、*DM。S2:输出开始通道2。取值范围同S1。功能:用一个子程序N代替数个具有相同结构但操作数不同的子程序。当执行条件为ON时,停止执行主程序,将输入通道S1~S1+3的内容复制到通道SR232~SR235中,将输出通道S2~S2+3的内容复制到通道SR236~SR239中,然后调用子程序N。子程序执行完毕,再将通道SR236~SR239中的内容传送到输出通道S2~S2+3中,并返回到MCRO指令的下一条语句,继续执行主程序。山东建筑大学《电气控制与PLC》范文利2012使用子程序调用程序时要注意以下几点:(1)所有子程序都必须放在主程序之后和END指令之前。(2)主程序调用各子程序的次数没有限制。(3)子程序可以嵌套调用。即子程序中又调用别的子程序。但是嵌套不能超过16级,且子程序不能自调用。山东建筑大学《电气控制与PLC》范文利2012宏指令调用子程序的例子山东建筑大学《电气控制与PLC》范文利2012二、中断控制指令所谓中断,是指在外部或内部触发信号的作用下,中断主程序的执行而转去执行一个预先编写的子程序,即中断处理子程序(也称中断服务程序),中断处理子程序执行完毕再返回断点处继续执行主程序的现象。中断功能具有非常重要的意义,因为在实际控制过程中,控制系统中有些随时可能发生的情况需要PLC处理,具有中断功能的PLC可以不受扫描周期的影响,及时地把这种随机的信息输入到PLC中,从而提高了PLC对外部信息的响应速度。山东建筑大学《电气控制与PLC》范文利2012二、中断控制指令常见的中断有三种形式:外部输入中断、间隔定时器中断和高速计数器中断。因为CPM1A系列PLC的中断使用最据代表性,下面我们以CPM1A系列PLC讲述中断的使用。1.外部输入中断在CPMlA系列PLC中,00003~00006这四个点是外部输入中断的输入点。外部发生的事件所产生的信号通过中断输入点送入PLC,当某个中断输入点为ON或ON一定次数时,产生中断请求信号。当不使用中断功能时,这些点可以作为普通输入点使用。外部输入中断有输入中断和计数中断两种模式。山东建筑大学《电气控制与PLC》范文利2012(1)外部输入中断模式。1)输入中断模式在非屏蔽情况下,只要中断输入点接通则产生中断响应。若在屏蔽情况下,即使中断输入点接通也不能产生中断响应,但该中断信号被记忆下来,待屏蔽解除后立即产生中断。若屏蔽解除后不希望响应所记忆的中断,可用指令清除该记忆。2)计数器中断模式这种模式的中断,是对中断输入点接通的次数进行高速计数(减计数),当达到设定的次数时产生中断,且计数器停止计数、中断被屏蔽。若想再产生中断需使用指令进行设定。计数器的计数范围为0~65535,计数频率最高为lkHz。对计数模式的中断,CPMlA系列规定用通道SR240~243(分别对应00003~00006输入点)存放计数器设定值。山东建筑大学《电气控制与PLC》范文利2012外部输入点对应的中断处理子程序编号是固定的,其对应关系为:中断输入0(输入点00003):子程序号为000中断输入1(输入点00004):子程序号为001中断输入2(输入点00005):子程序号为002中断输入3(输入点00006):子程序号为003其优先级为中断输入0中断输入1中断输入2中断输入3。当不使用中断功能时,这些子程序号可以作为普通子程序编号使用。中断处理子程序也是用SBN定义其开始,用RET定义其结束。而且中断处理子程序也必须放在主程序之后和END之前。山东建筑大学《电气控制与PLC》范文利2012在外部输入中断使用之前,要用编程器对DM6628进行设定,若不进行设定就没有中断功能。DM6628设定的内容和含义如图山东建筑大学《电气控制与PLC》范文利2012(2)外部输入中断控制指令:INT(89)/@INT(89)格式:INTC1符号:000C2C1:控制码。其取值为000~003,100,200。C2:控制数据。C1=002时取值范围IR、HR、AR、LR、TC、DM、*DMC1≠002时取值范围DM、*DM、#0000~#000F。功能:当执行条件为ON时,根据C1的数据完成以下6种功能中的一种。山东建筑大学《电气控制与PLC》范文利2012C1是控制码,其取值和含义如下:1)、C1=000:对00003~00006输入点屏蔽/不屏蔽。是否屏蔽,由C2的bit00~bit03位来决定,如图2)、C1=001:清除/不清除输入中断记忆。是否清除,由C2的bit00~bit03位来决定。(1/0:清除/不清除)3)、C1=002:读出00003~00006输入点的当前屏蔽状态写入C2中,为屏蔽时C2的对应位为1。山东建筑大学《电气控制与PLC》范文利20124)、C1=003:更新/不更新00003~00006输入点的计数器设定值。是否更新设定值,由C2的bit00~bit03位来决定,(1/0:不更新/更新)5)、C1=100:屏蔽所有中断(包括外部输入中断、间隔定时器中断和高速计数器中断)。屏蔽期间若有中断请求将不响应,但可记忆各种中断信号,待屏蔽解除时立即响应中断。6)、C1=200:解除屏蔽所有中断,即恢复到执行“屏蔽所有中断”之前的状态,但不解除各个中断自己的屏蔽字(如C1=000时,INT写入的屏蔽字)。山东建筑大学《电气控制与PLC》范文利20124)、C1=003:更新/不更新00003~00006输入点的计数器设定值。是否更新设定值,由C2的bit00~bit03位来决定,(1/0:不更新/更新)5)、C1=100:屏蔽所有中断(包括外部输入中断、间隔定时器中断和高速计数器中断)。屏蔽期间若有中断请求将不响应,但可记忆各种中断信号,待屏蔽解除时立即响应中断。6)、C1=200:解除屏蔽所有中断,即恢复到执行“屏蔽所有中断”之前的状态,但不解除各个中断自己的屏蔽字(如C1=000时,INT写入的屏蔽字)。注:C1=100和C1=200时,C2=0000为固定设置;屏蔽所有中断与解除屏蔽所有中断应成对使用,不是十分必要,一般不要使用屏蔽所有中断。山东建筑大学《电气控制与PLC》范文利2012记数器模式外部中断举例。某生产线记数装箱程序(局部)。对产品进行记数,每到50件便执行装箱子程序。00003为记数脉冲输入点,如图。程序运行前首先设定DM6628=0001,使输入点00003成为中断输入点。图中1部分为计数器设定值输入,设定值为50;2部分为中断控制,设定输入点00003更新,其余输入点为屏蔽状态;3部分为中断处理子程序用来执行装箱子程序,应注意的是中断输入点00003对应的中断处理子程序号是000。山东建筑大学《电气控制与PLC》范文利20122.间隔定时器中断CPM1A有一个间隔定时器,它是个递减计数器(从设定值开始按一定的时间间隔进行减计数),当其定时时间到时,可以不受扫描周期的影响,停止执行主程序并建立断点,立即转去执行中断处理子程序,从而实现高精度的定时中断处理。间隔定时器中断有两种工作模式:一为单触发模式,当规定时间到时,只执行一次中断;另一个是重复中断模式,每隔一定时间反复执行中断。山东建筑大学《电气控制与PLC》范文利2012间隔定时器中断控制指令:STIM(69)/@STIM(69)格式:STIMC1符号:C2C3C1:控制码。其取值为000,003,006,010。C2:控制数据1。取值范围IR、HR、AR、LR、DM、*DM、#。C3:控制数据2。取值范围IR、HR、AR、LR、DM、*DM、#。功能:当执行条件为ON时,根据Cl的数据完成以下4种功能中的一种。C2、C3的取值根据C1的状态来决定。山东建筑大学《电气控制与PLC》范文利2012C1是控制码,其取值和含义如下:(1)C1=000启动单次中断模式1)C2若为常数(BCD码,#0000~#9999)时,则为定时器的设定值。实际定时时间即为该常数值,单位为毫秒(ms)。C3为子程序号。2)C2若为通道号,则定时时间由C2、C2+1通道决定,其中C2内容为BCD码,取值范围#0000~#9999,C2+1内容为BCD码,取值范围#0005~#0320,实际定时时间为:[C2的内容×(C2+1)的内容]×0.1ms,故实际定时时间的范围是0.5~319968ms。C3为子程序号。(2)C1=003启动重复中断模式C2、C2+1、C3的意义及定时时间的计算同上。(3)C1=006读出定时器的当前值(4)C1=010停止间隔定时器工作。此时C2、C3固定为000。山东建筑大学《电气控制与PLC》范文利2012间隔定时器中断举例。图为间隔定时器重复中断的程序,程序中STIM指令的控制码C1=003,启动重复中断模式,控制数据C2为通道号DM0000,则定时时间为6000×100×0.1=60000ms。满足条件时每隔60s启动中断子程序010一次。山东建筑大学《电气控制与PLC》范文利20123.高速计数器中断PLC中普通计数器CNT的计数脉冲频率受扫描周期及输入滤波器时间常数的限制,所以不能对高频脉冲信号进行计数。对高频脉冲信号的计数,大、中型PLC是采用特殊功能单元来处理。对小型PLC,例如CPMlA系列,由于其设置了高频脉冲信号的输入点,配合相关的指令及必要的设定,也可以处理高频脉冲信号的计数问题。下面介绍CPMlA系列PLC的高速计数器及其功能。山东建筑大学《电气控制与PLC》范文利2012(1)脉冲编码器在自控系统中经常使用脉冲编码器,脉冲编码器向PLC输出的信号有两种形式:一种为增减模式,有A相B相(脉冲输入)和Z相(复位)三个信号,可进行增减记数;另—种模式为增模式,一个单相脉冲信号A和一个计数复位信号Z作为PLC输入。增减计数:A—00000B—00001Z—00002递增计数:当A相超前B相90゜时,在A、B相脉冲的前沿,计数器的当前值加1;递减计数:当B相超
本文标题:plc指令4
链接地址:https://www.777doc.com/doc-4005974 .html