您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 【西门子S7-200】s7-200高速计数器详细解说
s7-200高速计数器详细解说1.高速计数器指令普通计数器受CPU扫描速度的影响,是按照顺序扫描的方式进行工作。在没个扫描周期中,对计数脉冲只能进行一次累加;对于脉冲信号的频率比PLC的扫描频率高时,如果仍采用普通计数器进行累加,必然会丢失很对输入脉冲信号。在PLC中,对比扫描频率高的输入信号的计数可也使用高速计数器指令来实现。在S7-200的CPU22X中,高速计数器数量及其地址编号表如下CPU类型CPU221CPU222CPU224CPU226高速计数器数量46高速计数器编号HC0,HC3~HC5HC0~HC51.高速计数器指令高速计数器的指令包括:定义高速计数器指令HDEF和执行高速计数指令HSC,如表HDEFHSC(1)定义高速计数器指令HDEFHDE指令功能是为某个要使用的高速计数器选定一种工作模式。每个高速计数器在使用前,都要用HDEF指令来定义工作模式,并且只能用一次。它有两个输入端:HSC为要使用的高速计数器编号,数据类型为字节型,数据范围为0~5的常数,分别对应HC0~HC5;MOCE为高速计数的工作模式,数据类型为字节型,数据范围为0~11的常数,分别对应12种工作模式。当准许输入使能EN有效时,为指定的高速计数器HSC定义工作模式MODE。(2)执行高速计数指令HSCHSC指令功能功能是根据与高速计数器相关的特殊继电器确定在控制方式和工作状态,使高速计数器的设置生效,按照指令的工作模式的工作模式执行计数操作。它有一个数据输入端N:N为高速计数器的编号,数据类型的字型,数据范围为0~5的常数,分别对应高速计数器HC0~HC5.当准许输入EN使能有效时,启动N号高速计数器工作。2.高速计数器的输入端高速计数器的输入端不像普通输入端那样有用户定义,而是由系统指定的输入点输入信号,每个高速计数器对它所支持的脉冲输入端,方向控制,复位和启动都有专用的输入点,通过比较或中断完成预定的操作。每个高速计数器专用的输入点如表高速计数器的输入点高速计数器标号输入点高速计数器标号输入点HC0I0.0,I0.1,I0.2HC3I0.1HC1I0.6,I0.7,I1.0,11.1HC4I0.3,I0.4,I0.5HC2I1.2,I1.3,,I1.4,I1.5HC5I0.43.高速计数器的状态字节系统为每个高速计数器都在特殊寄存器区SMB提供了一个状态字节,为了监视高速计数器的工作状态,执行由高速计数器引用的中断事件,其格式如表。高速计数器的状态字节HC0HC1HC2HC3HC4HC5描述SM36.0SM46.0SM56.0SM36.0SM146.0SM156.0不用SM36.1SM46.1SM56.1SM36.1SM146.1SM156.1SM36.2SM46.2SM56.2SM36.2SM146.2SM156.2SM36.3SM46.3SM56.3SM36.3SM146.3SM156.3SM36.4SM46.4SM56.4SM36.4SM146.4SM156.4SM36.5SM46.5SM56.5SM36.5SM146.5SM156.5当前计数的状态位0=减计数,1=增计数SM36.6SM46.6SM56.6SM36.6SM146.6SM156.6当前值等于设定值的状态位0=不等于,1=等于SM36.7SM46.7SM56.7SM36.7SM146.7SM156.7当前值大于设定值得状态位0=小于等于,1=大于只有执行高速计数器的中断程序时,状态字节的状态位才有效。4.高速计数器的工作模式高速计数器有12种不同的工作模式(0`~11),分为4类。每个高速计数器都有多种工作模式,可以通过编程的方法,使用定义高速计数器指令HDEF来选定工作模式。(1)各个高速计数器的工作模式1.高速计数器HC0是一个通用的增减计数器,工有8种模式,可也通过编程来选择不同的工作模式,HC0的工作模式如表HC0的工作模式模式描述控制位I0.0I0.1I0.20内部方向控制的单向增/减计数器SM37.3=0,减脉冲1SM37.3=1,增复位3外部方向控制的单向增/减计数器I0.1=0,减脉冲方向4I0.1=1,增复位6增/减计数脉冲输入控制的双向计数器外部输入控制曾计数脉冲减计数脉冲7复位9A/B相正交计数器A超前B,曾计数外部输入控制A相脉冲B相脉冲10B超前A,复位减计数2高速计数器HC1共有12种操作模式如表HCI的操作模式模式描述控制位I0.6I0.7I1.0I1.10内部方向控制的单向增/减计数器SM47.3=0,减SM47.3=1,增脉冲1复位2启动3外部方向控制的单向增/减计数器I0.7=0,减I0.7=1,增脉冲方向4复位5启动6增/减计数脉冲输入控制的双向计数器外部输入控制曾计数脉冲减计数脉冲7复位8启动9A/B相正交计数器A超前B,曾计数B超前A,减计数外部输入控制A相脉冲B相Mc10复位11启动3.高速计数器HC2共有12种操作模式,如表HC2的操作模式模式描述控制位I1.2I1.3I1.4I1.50内部方向控制的单向增/减计数器SM573=0,减SM57.3=1,增脉冲1复位2启动3外部方向控制的单向增/减计数器I1.3=0,减I1.3=1,增脉冲方向4复位5启动6增/减计数脉冲输入控制的双向计数器外部输入控制曾计数脉冲减计数脉冲7复位8启动9A/B相正交计数器A超前B,曾计数B超前A,减计数外部输入控制A相脉冲B相Mc10复位11启动4高速计数器HC3只有一种操作模式,如表HC3的操作模式模式描述控制位I0.10内部方向控制的单向增/减计数器SM137.0=0,减;SM137.3=1,增脉冲5.高速计数器HC4有8操作模式,如表HC4的操作模式模式描述控制位I0.3I0.4I0.50内部方向控制的单向增/减计数器SM147.3=0,减脉冲1SM147.3=1,增复位3外部方向控制的单向增/减计数I0.1=0,减脉冲方向4器I0.1=1,增复位6增/减计数脉冲输入控制的双向计数器外部输入控制增计数脉冲减计数脉冲7复位9A/B相正交计数器A超前B,曾计数外部输入控制A相脉冲B相脉冲10B超前A,减计数复位6.高速计数器HC5只有一种操作模式如表HC5的操作模式模式描述控制位I0.40内部方向控制的单向增/减计数器SM157.3=0,减SM157.3=1,增脉冲4.高速计数器的控制字节系统为每个高速计数器都安排了一个特殊寄存器SMB作为控制字,可也通过对控制字节指定为的设置,确定高速计数器的工作模式。S7-200在执行HSC指令前,首先要检查与每个高速计数器相关的控制字节,在控制字节中设置了启动输入信号和复位输入信号的有效电平,正交计数器的计数倍率,计数方向采用内部控制的有效电平,是否允许改变计数方向,是否允许更新设定值,是否允许更新当前值,以及是否允许执行高速计数指令。高数计数器的控制字节HCOHC1HC2HC3HC4HC5描述SM37.0SM47.0SM57.0----SM147.0------复位输入控制电平有效值:、0=高电平有效,1=低电平有效------SM47.1SM57.1-----------------启动输入控制电平有效值:0=高电平有效,1=低电平有效SM37.2SM47.2SM57.2-----SM147.2--------倍率选择:0=4倍率,1=1倍率SM37.3SM47.3SM57.3SM137.3SM147.3SM157.3计数方向控制:0为减1为曾SM37.4SM47.4SM57.4SM137.4SM147.4SM157.4改变计数方向控制:0=不改变1=准许改变SM37.5SM47.5SM57.5SM137.5SM147.5SM157.5改变设定值控制:0=不改变1=准许改变SM37.6SM47.6SM57.6SM137.6SM147.6SM157.6改变当前值控制:0=不改变1=准许改变SM37.7SM47.7SM57.7SM137.7SM147.7SM157.7高速计数控制:0=禁止计数1=准许计数说明:(1)在高速计数器的12种工作模式中,模式0、模式3、模式6和模式9,是既无启动输入,又无复位输入的计数器,在模式1、模式4、模式7和模式10中,是只有复位输入,而没有启动输入的计数器;在模式2、模式5、模式8和模式11中,是既有启动输入,又有复位输入的计数器。(2)当启动输入有效时,允许计数器计数;当启动输入无效时,计数器的当前值保持不变;当复位输入有效时,将计数器的当前值寄存器清零;当启动输入无效,而复位输入有效时,则忽略复位的影响,计数器的当前值保持不变;当复位输入保持有效,启动输入变为有效时,则将计数器的当前值寄存器清零。(3)在S7-200中,系统默认的复位输入和启动输入均为高电平有效,正交计数器为4倍频,如果想改变系统的默认设置,需要设置如上表中的特殊继电器的第0,1,2位。各个高速计数器的计数方向的控制,设定值和当前值的控制和执行高速计数的控制,是由表4-22中各个相关控制字节的第3位至第7位决定的。6.高速计数器的当前值寄存器和设定值寄存器每个高速计数器都有1个32位的经过值寄存器HC0-HC5,同时每个高速计数器还有1个32位的当前值寄存器和1个32位的设定值寄存器,当前值和设定值都是有符号的整数。为了向高速计数器装入新的当前值和设定值,必须先将当前值和设定值以双字的数据类型装入如表所列的特殊寄存器中。然后执行HSC指令,才能将新的值传送给高速计数器。高速计数器的当前值和设定值HC0HC1HC2HC3HC4HC5说明SMD38SMD48SMD58SMD138SMD148SMD158新当前值SMD42SMD52SMD62SMD142SMD152SMD162新设定值7.高速计数器的初始化由于高速计数器的HDEF指令在进入RUN模式后只能执行1次,为了减少程序运行时间优化程序结构,一般以子程序的形式进行初始化。下面以HC2为例,介绍高速计数器的各个工作模式的初始化步骤。1.利用SM0.1来调用一个初始化子程序。2.在初始化子程序中,根据需要向SMB47装入控制字。例如,SMB47=16#F8,其意义是:准许写入新的当前值,准许写入新的设定值,计数方向为曾计数,启动和复位信号为高电平有效。3.执行HDEF指令,其输入参数为:HSC端为2(选择2号高速计数器),MODE端为0/1/2(对应工作模式0,模式1,模式2)4.将希望的当前技术值装入SMD58(装入0可进行计数器的清零操作)5.将希望的设定值装入SMD626.如果希望捕获当前值等于设定值的中断事件,编写与中断事件号16相关联的中断服务程序7.如果希望捕获外部复位中断事件,编写与中断事件号18相关联的中断服务程序。8.执行ENI指令9.执行HSC指令10.退出初始化子程序8高速计数器应用举例某产品包装生产线用高速计数器对产品进行累计和包装,每检测1000个产品时,自动启动包装机进行包装,计数方向可由外部信号控制,。设计步骤:1.选择高速计数器,确定工作模式在本例中,选择的高速计数器为HC0,由于要求技术方向可由外部信号控制,而其不要复位信号输入,确定工作模式为模式3,采用当前值等于设定值得中断事件,中断事件号为12,启动包装机工作子程序,高速计数器的初始化采用子程序。2.用SM0.1调用高速计数器初始化子程序,子程序号为SBR_03.向SMB37写入控制字SMB37=16#F84.执行HDEF指令,输入参数:HSC为0,MODE为35.向SMD38写入当前值,SMD38=06.向SMD42写入设定值。SMD42=10007.,执行建立中断连接指令ATCH,输入参数:INT为INT-0,EVNT为128.编写中断服务程序INT0,在本例中为调用包装机控制子程序,子程序号为SBR-19.执行全局开中断指令ENI10.执行HSC指令,对高速计数器编程并投入运行。MAINSBR_0SBR_1包装机控制程序不写了INT_0
本文标题:【西门子S7-200】s7-200高速计数器详细解说
链接地址:https://www.777doc.com/doc-2681205 .html