您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 第5章PLC特殊应用指令.
1第5章S7-200系列PLC的特殊功能指令一、子程序指令:有利于层次结构划分。它可使程序整体更加紧凑,主题鲜明,便于编写、阅读、交流。预备知识•例要求只要断开I0.0,则Q0.0闪光(I0.1为试验按钮)。主程序子程序2二、中断指令•中断就是暂不执行扫描程序,优先执行中断。适用于高速控制。•执行中断必须要有“引发”事件,称为“中断事件”。S7-200中断事件有三大类:通信中断、I/O中断、定时中断。1)通信口中断:优先级最高通信口中断事件列表32)I/O中断:优先级次之外部输入引起中断:I0.0~I0.3的上升沿、下降沿;高速计数器引起中断:计数值(当前值)等于设定值、计数方向变化、外部复位信号输入;脉冲输出引起中断:给定数量的脉冲输出完成引发的中断。4I/O中断事件列表53)定时中断:优先级最低•定时中断:用于定时采样,如PID控制。例如中断号10:表示定时中断0,中断时间由SMB34设定,单位ms.中断号11:定时定时中断1,中断时间由SMB35设定,单位ms.•定时器中断:T32、T96的当前值等于预设值。定时中断事件列表6中断优先级(1)任何时候都只执行一个中断。不同中断事件具有不同优先级,同一优先级中,“先来先服务”。(2)一旦选择,中断过程不被打断,而计算机程序中高优先级可打断低优先级。(3)执行中断过程中,若出现新的中断请求,须排队等待,直至正在执行的中断程序执行完毕。(5)排队等待的中断事件太多,则溢出状态位置1。可到SM4.0~SM4.2检查。7(ENI)表示允许中断,即中断可执行。中断指令的组成(1)中断允许指令ENI(EnableInterrupt)(2)禁止中断指令DISI(DisableInterrupt)(DISI)表示不允许中断,即中断无效。8(3)中断连接指令ATCH(AttachInterrupt)用来建立中断事件(EVNT)和处理此事件的中断程序(INT)之间的联系。用于主程序中,不能嵌套用于中断程序中。EVNT-中断事件号INT-中断序号I0.1ENENOATCHINTEVNT1009用来断开中断事件(EVNT)与中断程序(INT)之间的联系,从而禁止单个中断事件。也是用于主程序中。(4)中断分离指令DTCH(DetachInterrupt)EVNT-中断事件号I0.1ENENODTCHEVNT1010中断程序使用注意事项:1、中断程序只有在中断事件发生时才能调用。因此,对于那些要求每一循环扫描都要刷新的信号,不需要用中断程序。尽管有时难以区分。2、中断会引起PLC循环扫描时间加长。因此,中断程序要尽可能短。11连接中断0,引发事件0(I0.0上升沿瞬间)I0.0上升沿瞬间,此中断程序被连接,瞬间将MB0加1例I0.0闭合,连接中断,20次后,接通Q0.0。12ENENOMOV-WINOUTSM0.0AIW2VW200(INT0)例对模拟量输入信号实行定时采样(不需要在每个扫描周期内都采样)。(SBR-0)SM0.0ENENOATCHINTEVNT100ENENOMOV_BINOUT(ENI)100SMB34ENSBR-0SM0.1(OB1)….子程序里面再有中断连接第0个中断定时中断时间常数中断事件号10:定时中断,间隔时间SMB34决定中断内容:采集AIW2数据给VW200中断使能13例编制对I0.0、I0.1输入的正交脉冲进行二倍频处理后,从Q0.0输出I0.1I0.0Q0.014中断0主程序中断1中断事件号0:I0.0上升沿产生中断0中断事件号1:I0.0下降沿产生中断0中断事件号2:I0.1上升沿产生中断1中断事件号3:I0.1下降沿产生中断1I0.1I0.0Q0.015第一节高速计数HSC指令•高速计数器HSC(HighSpeedCount)受扫描周期的影响,普通计数器计数频率低。高速计数器利用中断程序,可不受扫描周期的影响,最高20kHz。•高速计数实现办法有二:1、专用高速计数模块;2、程序合成法。现介绍后一种。•S7-200PLC最多有HSC0~HSC56个高速计数器,每个有对应一控制字节(SM37、SM47、SM57、SM137、SM147、SM157)。16一、高速计数器的脉冲计数方式⑴单路无方向输入。一个外部端子接脉冲输入;控制字节(如HSC0对应的SM37.3)控制计数方向:“1”加计数;“0”减计数。⑵单路有方向输入。一个外部端子脉冲输入;一个外部端子控制计数方向:“1”加计数;“0”减计数。⑶两路加/减输入。一个外部端子加计数,一个外部端子减计数。两路脉冲必须错开0.3ms才有效,否则视为同时输入,不加也不减。⑷两相输入。一个外部端子A相脉冲,一个外部端子B相脉冲,A超前B(不能大于半个周期)加计数;反之减计数。专用于检测电机正反转。17二、HSC输入端口配置计数器各工作模式对应的输入端子HSC0I0.0I0.1I0.2HSC1I0.6I0.7I1.0I1.1HSC2I1.2I1.3I1.4I1.5HSC3I0.1HSC4I0.3I0.4I0.5HSC5I0.4单路脉冲输入的内部方向控制加/减计数器模式0脉冲输入模式1脉冲输入复位模式2脉冲输入复位启动单路脉冲输入的外部方向控制加/减计数器模式3脉冲输入方向模式4脉冲输入方向复位模式5脉冲输入方向复位启动18计数器标号及各工作模式对应的输入端子HSC0I0.0I0.1I0.2HSC1I0.6I0.7I1.0I1.1HSC2I1.2I1.3I1.4I1.5HSC3I0.1HSC4I0.3I0.4I0.5HSC5I0.4两路脉冲输入的加/减计数器模式6加脉冲输入减脉冲输入模式7加脉冲输入减脉冲输入复位模式8加脉冲输入减脉冲输入复位启动两路脉冲输入的A/B相正交计数器模式9脉冲输入A脉冲输入B模式10脉冲输入A脉冲输入B复位模式11脉冲输入A脉冲输入B复位启动续前表19例如•HSC0:选择模式1——单路脉冲输入的内部方向控制加/减计数器。I0.0脉冲输入,I0.2复位,内部控制加减。•HSC3:选择模式0——单路脉冲输入的内部方向控制加/减计数器。I0.1脉冲输入,无复位,内部控制加减。•HSC4:选择模式1——单路脉冲输入的内部方向控制加/减计数器。I0.3脉冲输入,I0.5复位,内部控制加减。•HSC5:选择模式0——单路脉冲输入的内部方向控制加/减计数器。I0.4脉冲输入,无复位,内部控制加减。20三、高速计数器指令1.高速计数器定义指令:指定高速计数器并设定工作模式。HSC:高速计数器编号:0~5对应HSC0~HSC5。I0.0HSCENENOHDEFMODEMODE:设定高速计数器的工作模式0~11,对应12种工作模式。说明:高速计数器指令定义后才能用,且只允许定义一次。212.执行高速计数器指令•使能瞬间,就会使初始值、设定值寄存器赋值(例如HC0=SMD37的值)。不能一直使能,否则计数器HC的值不变了。I0.0NENENOHSCN:高速计数器编号,0~5。22四、与高速相计数器关的特殊功能寄存器1.高速计数器的控制字节(以HSC0、HSC1说明)HSC0HSC1功能描述SM37.0SM47.0复位信号极性:0-高电平有效,1-低电平有效SM37.1SM47.1启动信号极性:0-高电平有效,1-低电平有效SM37.2SM47.2正交计数器倍率:0-4倍频,1-1倍频SM37.3SM47.3模式0~2计数方向控制:0-减计数,1-加计数注意:模式3~5计数方向由外部端子控制:0-减计数,1-加计数;模式6~11两相输入,不需要控制计数方向。SM37.4SM47.4计数方向改变:0-禁止改变,1-允许改变SM37.5SM47.5计数设定值修改:0-禁止修改,1-允许修改SM37.6SM47.6计数当前值修改:0-禁止修改,1-允许修改SM37.7SM47.7计数器使能:0-禁止计数,1-允许计数注:HSC2~HSC5的控制字节为SMB57、SMB137、SMB147、SMB157,设定方法功能同上。232.高速计数器的当前值寄存器和设定值寄存器高速计数器当前值设定值HSC0SMD38SMD42HSC1SMD48SMD52HSC2SMD58SMD62HSC3SMD138SMD142HSC4SMD148SMD152HSC5SMD158SMD162注:1)SMD23不能读。?2)若需向高速计数器装入新的当前值和设定值,应先在控制字节的第5、6位作相关设定(1—允许修改)。243.访问高速计数器(HC)例如25五、高速计数器应用1.高速计数器的配置1)根据控制要求,选择高速计数器号、工作模式,划分高速计数器的输入端口。2)利用各种中断合理安排高速计数器的工作过程。2.高速计数器的初始化1)根据需要,确定控制字节各个位的状态;2)使用高速计数器定义指令,定义选定的工作模式;3)设定当前值寄存器和设定值寄存器初值;4)指定并使能中断程序;⑤激活高速计数器。261)某产品包装生产线应用高速计数器对产品进行累计和包装,每检测到1000个产品时,自动起动包装机进行包装。设计步骤:①选择高速计数器,确定工作模式•单纯加计数,因此有多个工作模式和计数器可选,这里选用HSC0,工作模式3。•采用当前值等于设定值的中断事件,中断事件号为12。•调用包装机工作子程序SBR2(本题不用设计)。②用SM0.1调用HSC0初始化子程序(SBR1)。包括控制字节初始化、工作模式定义、计数器当前值及设定值的初始化及中断连接等。3.高速计数器举例27ENSBR-0SM0.1SBR-0程序设计(ENI)SM0.0INT0ENENOATCHEVNT12ENENOMOV_BINOUTF8HSMB37控制字ENENOMOV_DWINOUT0SMD38当前值ENENOHSCIN0HSC0ENENOHDEFMODE3MOV_DWENENOINOUT1000SMD42预置值SM0.0ENENOMOV_BINOUTC8HSMB37ENENOMOV_DWINOUT0SMD38当前值ENENOHSCIN0INT-0ENSBR-2主程序:闭合一次,初始化子程序1。打包子程序SBR-2省略中断中再使能新的控制字使能瞬间,对计数器相关数据赋值28ENSBR-1SM0.1(ENI)SM0.0INT0ENENOATCHEVNT12ENENOMOV_BINOUTF8HENENOMOV_DWINOUT0ENENOHSCIN0HSC0ENENOHDEFMODE3MOV_DWENENOINOUT1000SM0.0ENENOMOV_BINOUTC8HSMB37ENENOMOV_DWINOUT0ENENOHSCIN0ENSBR-2关于使能:1、主程序中使能一次、子程序可以不再出现;主程序没有,子程序必须使能一次。子程序中有中断的话,中断中还要再出现一次使能。2、不能一直使能,否则一直赋值,计数器的值就不变了。29控制字子程序:SMB37=F8H中断程序:SMB37=C8HSM37.00复位信高电平有效0复位信号高电平有效SM37.10启动信号高电平有效0启动信号高电平有效SM37.204倍频计数,专用于两相输入,此处无用,0、1都可04倍频计数,专用于两相输入,此处无用0、1都可SM37.31加计数1加计数SM37.41允许改变计数方向0不允许改变计数方向,本题没改变计数方向(变了)SM37.51允许修改预置值0不允许修改预置值(变了),本体没修改预置值SM37.61允许修改当前值,本题用到了1允许修改当前值,本题用到了SM37.71允许计数器使能1允许计数器使能程序中用到的控制字的解释30高速计数器举例2)高速计数:先是10个脉冲,QB0加1;后来每15个脉冲,QB0加1312)高速计数:先是10个脉冲,QB0加1;后来每15个脉冲,QB0加1高速计数器举例3233高速计数器举例34S7-200PLC中的晶体管输出型(别的型号不行,继电器输出的会烧坏输出),输出点Q0.0和Q0.1,频率可达20kHz。输出类型为:1)PTO(PulseTrainOutput):脉冲
本文标题:第5章PLC特殊应用指令.
链接地址:https://www.777doc.com/doc-2110271 .html