第六章2程序流控制指令PPT文件格式下载.pptx
《第六章2程序流控制指令PPT文件格式下载.pptx》由会员分享,可在线阅读,更多相关《第六章2程序流控制指令PPT文件格式下载.pptx(41页珍藏版)》请在冰豆网上搜索。
保持跳转前状态不变。
定时器定时器TT和计数器和计数器CC如果被如果被CJCJ指令跳过,跳转期间它们的当前指令跳过,跳转期间它们的当前值将被保存。
如果在跳转开始时定时器和计数器正在工作,值将被保存。
如果在跳转开始时定时器和计数器正在工作,在跳转期间它们将停止定时和计数。
在跳转期间它们将停止定时和计数。
T192T192T199T199和高速计数器和高速计数器C235C235C255C255如果在驱动后跳转,则如果在驱动后跳转,则继续工作,输出触点也会动作。
继续工作,输出触点也会动作。
如图,如图,X000为为ON时,时,程序跳到指针程序跳到指针P8处。
处。
X000为为OFF时,时,不执行跳转,程序按原顺序执行。
不执行跳转,程序按原顺序执行。
如果用如果用M8000的常开触点驱动的常开触点驱动CJ指令,相当于无条件跳转指令,因为指令,相当于无条件跳转指令,因为运行时运行时特殊辅助寄存器特殊辅助寄存器M8000总是总是ON。
用跳转指令实现选择运行程序段用跳转指令实现选择运行程序段图手动/自动程序跳转应用跳转指令的程序结构如图所示。
X3是手动/自动选择开关的信号输入端。
当X3未接通时,执行手动程序段,反之执行自动程序段。
X3X3的的常开常开/常闭接点起联锁作用,常闭接点起联锁作用,使手动、自动两个程序段只使手动、自动两个程序段只能选择其一。
能选择其一。
条件跳转指令应用举例条件跳转指令应用举例【例题】某台设备具有手动/自动两种操作方式。
SB3是操作方式选择开关,当SB3处于断开状态时,选择手动操作方式;
当SB3处于接通状态时,选择自动操作方式,不同操作方式进程如下:
手动操作方式进程:
按启动按钮SB2,电动机运转;
按停止按钮SB1,电动机停机。
自动操作方式进程:
按启动按钮SB2,电动机连续运转1min后,自动停机。
按停止按钮SB1,电动机立即停机。
【解】根据控制要求,设计程序梯形图如图所示。
程序梯形图二、子程序指令二、子程序指令v子程序调用子程序调用CALLCALL(Sub-RoutineCallSub-RoutineCall)v操作数:
指针P0P0P127P127v子程序返回子程序返回SRETSRET无操作数无操作数(Sub-RoutineSub-RoutineReturnReturn)无操作数)无操作数v说明说明子程序应该在主程序结束之后编程。
子程序应该在主程序结束之后编程。
CJCJ指令的指针与指令的指针与CALLCALL的指针不能重复。
的指针不能重复。
主程序允许嵌套,嵌套级别最多为主程序允许嵌套,嵌套级别最多为55级。
级。
子程序只能用子程序只能用T192T192T199T199和和T246T246T249T249作定时器。
作定时器。
同一指针只能出现一次同一指针只能出现一次标号标号P63P63相当于相当于ENDEND。
v梯形图梯形图X1X1FENDFENDSRETSRETP8CALLCALLP8P8Y1Y1X12X12Y21Y21X11X11Y30Y30主主程程序序子子程程序序子程序编写在FEND指令的后面,以标号P开头,以返回指令SRET结束。
子程序调用指令CALL与跳转指令CJ不能使用相同的标号。
X1X1FENDFENDSRETSRETP8CALLCALLP8P8Y1Y1X12X12Y21Y21X11X11Y30Y30主主程程序序子子程程序序三、主程序结束指令三、主程序结束指令FENDv说明说明FENDFEND指令表示主程序结束指令表示主程序结束,与与ENDEND指令的功能一样指令的功能一样,程序执行程序执行到到FENDFEND时,进行输出处理、输入处理、监视定时器和计数器时,进行输出处理、输入处理、监视定时器和计数器刷新,全部完成以后返回到程序的第刷新,全部完成以后返回到程序的第0000步。
步。
执行到该指令时程序返回到执行到该指令时程序返回到00步。
中断服务子程序和子程序应该写在中断服务子程序和子程序应该写在FENDFEND之后,并且用之后,并且用IRETIRET和和SRETSRET返回。
返回。
如果多次使用如果多次使用FENDFEND指令,在最后的指令,在最后的FENDFEND和和ENDEND之间编写子程之间编写子程序或中断子程序。
序或中断子程序。
FENDFEND主程序结束指令使用时应注意,子程序和中断子程序主程序结束指令使用时应注意,子程序和中断子程序必须写在主程序结束指令必须写在主程序结束指令FENDFEND和和ENDEND指令之间。
指令之间。
子程序子程序调用举例调用举例程序功能是:
X1、X2、X3分别接通时,将相应的数据传送到D0、D10,然后调用子程序;
在子程序中,将D0、D10存储的数据相加,运算结果存储在D20,用D20存储数据控制输出字元件K1Y0。
四、中断指令四、中断指令v中断返回中断返回IRETIRET(InterruptionReturnInterruptionReturn)开中断开中断EIEI(InterruptionEnableInterruptionEnable)关中断关中断DIDI(InterruptionDisableInterruptionDisable)v均无操作数均无操作数v梯形图梯形图开中断范围开中断范围X0I100X10FENDIRETEIDIIRETI101中断子程序中断子程序22中断子程序中断子程序11v说明说明在执行某个中断子程序时,禁止其它中断请求。
在执行某个中断子程序时,禁止其它中断请求。
用于中断的用于中断的指针指针用来指明某一中断源的中断程序的用来指明某一中断源的中断程序的入口。
入口。
中断程序允许嵌套,嵌套级别为中断程序允许嵌套,嵌套级别为22级。
中断指针共有中断指针共有1515个:
输入中断个:
输入中断66个,定时器中断个,定时器中断33个,个,计数器中断计数器中断66个。
个。
中断程序用中断程序用T192T192T199T199和和T246T246T249T249作定时器。
中断的优先级别中断的优先级别多个中断信号不同时产生时,按先后顺序中断。
多个中断信号不同时产生时,按先后顺序中断。
多个中断信号同时产生时,按指针大小中断。
I输入中断输入中断0:
下降沿中断:
下降沿中断1:
上升沿中断:
上升沿中断输入号(输入号(05)每个输入只能用)每个输入只能用1次次0当当M8050M8050M8058M8058为为ONON时,禁止执行相应的输入中断,时,禁止执行相应的输入中断,M8059M8059为为ONON时禁止所有计数器中断时禁止所有计数器中断例如,例如,I001I001为输入为输入X0X0从从OFFONOFFON变化时,执行由该指针作变化时,执行由该指针作为标号后面的中断程序,并根据为标号后面的中断程序,并根据IRETIRET指令返回。
指令返回。
输入中断输入中断用来接收特定的输入地址号的输入信号,用来接收特定的输入地址号的输入信号,输入中断指针输入中断指针I0I0。
最高位。
最高位与与X000X000X005X005的元件号相对应,单元的输入号为的元件号相对应,单元的输入号为0055(从(从X000X000X005X005输入)。
最低位输入)。
最低位为为00时表示下降沿中断,反之时表示下降沿中断,反之为上升沿中断为上升沿中断图中一开始为允许中断。
当X1从OFFON且保持ON,程序跳到指针I101处执行中断程序,执行第13行将K100送到D1,然后返回主程序,对定时器T0计时。
当计时达到D1当前值K100时,T0触点闭合,Y0得电。
中断程序由中断指针入口,到中断返回指令IRET结束。
例如中断指针I101的意义为当程序执行到X1时转到中断指针I101的程序行执行,一直到IRET为止,之后返回主程序。
中断程序编写在主程序结束之间,如图所示。
(2)
(2)定时器中断定时器中断定时器中断由编号为定时器中断由编号为I6I6,I7I7,I8I8三个专用定时器中的一个,在三个专用定时器中的一个,在101099ms99ms中任选一个作为中断设定时间,每隔此设定时间中断中任选一个作为中断设定时间,每隔此设定时间中断一次,例如一次,例如I650I650,即每隔,即每隔50ms50ms,在标号,在标号I650I650之后对程序执行中之后对程序执行中断,直到执行断,直到执行IRETIRET指令返回原状态。
指令返回原状态。
I定时器中断定时器中断1099ms定时器中断号(定时器中断号(68),每个定时器只能用每个定时器只能用1次次定时器中断用于需要指定中断时间执行中断程序的地方,主要用于高速处理或每隔一定时间执行的程序等问题。
定时器的中断指针为:
图中按X1,M3得电,定时器中断,执行中断指针I650每隔50ms使D0加1。
直到当D0的当前值等于1000,M3失电。
定时器中断指针定时器中断指针为为I6I6I8I8,低两位是以,低两位是以msms为单位定为单位定时时间(时时间(1199ms99ms)。
)。
M8056M8056M5058M5058为为ONON时,将分别禁止定时时,将分别禁止定时中断中断0022。
(3)(3)计数器中断计数器中断计数器中断用于与高速计数器当前值比较的结果(执行高速计数器中断用于与高速计数器当前值比较的结果(执行高速计数器比较置位指令)而中断执行中断程序的场合计数器比较置位指令)而中断执行中断程序的场合。
计数器中断指针计数器中断指针为为I00I00(1166,计数器中断,计数器中断66点,不可点,不可重复使用)。
计数器中断与重复使用)。
计数器中断与HSCSHSCS(高速计数器比较置位)指令(高速计数器比较置位)指令配合使用,根据高速计数器的计数当前值与计数设定值的关系配合使用,根据高速计数器的计数当前值与计数设定值的关系来确定是否执行相应的中