
西门子S7-200高速计数器功能介绍.docx
5页S7-200 CPU具有集成的、硬件高速计数器CPU221和CPU222可以使用4个30kHz单相高速计数器或2个20kHz的两相高速计数 器,而CPU224和CPU226可以使用6个30kHz单相高速计数器或4个20kHz的两相高 速计数器S7-200的新一代产品CPU224 XP支持更高的计数速度高速计数器可以被配置为12种模式中的任意一种,但并不是所有计数器都能使用每一种模 式在正交模式下,你可以选择一倍速或者四倍速计数速率对于操作模式相同的计数器, 其计数功能是相同的计数器共有四种基本类型:带有内部方向控制的单相计数器,带有外部方向控制的单相计数 器,带有两个时钟输入的双相计数器和A/B相正交计数器表1.高速计数器的模式及输入点:模式描述输入点备注HSCO I0.0 I0.1 I0.2 (1)HSC1 I0.6 I0.7 I1.0 I1.1 (2)HSC2 I1.2 I1.3 I1.4 I1.5 (2)HSC3 I0.1 (1)HSC4 I0.3 I0.4 I0.5HSC5 I0.40 带有内部方向控制的单相计数器时钟1时钟复位2时钟复位启动3 带有外部方向控制的单相计数器时钟方向4 时钟方向复位5 时钟方向复位启动6带有增减计数时钟的双相计数器增时钟减时钟7增时钟减时钟复位8增时钟减时钟复位启动9 A/B相正交计数器时钟A时钟B10时钟A时钟B复位11时钟A时钟B复位启动12只有HSC0和HSC3支持模式12。
HSC0计数高速脉冲输出Q0.0;HSC3计数高速计数脉冲输出Q0.11) 支持模式12高速计数器的实际输入要根据用户选择的高速计数器号和模式来确定,如上表例:如果 你选择了 HSC0的模式1,则你的外部高速计数输入点应接在I0.0,外部复位点应接在I0.2如果用户使用了多个高速计数器,则被某一高速计数器占用了的输入点,其它高速计数器 不能再使用如HSC0的模式3已经占用了 I0.1作为外部方向控制点,那么HSC3高速计 数器就不能再使用了,因为它的计数输入点也是I0.1,与之冲突了2) CPU 221/222 没有 HSC1 和 HSC2表2.高速计数器的寻址高速计数器号 HSC0 HSC1 HSC2 HSC3 HSC4 HSC5新当前值(仅装入)SMD38 SMD48 SMD58 SMD138 SMD148 SMD158 新预置值(仅装入)SMD42 SMD52 SMD62 SMD142 SMD152 SMD162 当前计数值(仅读出)HC0 HC1 HC2 HC3 HC4 HC5高速计数器的具体编程及相关的中断和其它参数,请参见《S7-200系统手册》,上面有详细 的阐述及例程STEP 7-Micro/WIN提供了一个方便实用的高速计数器指令编程向导,用户可以简单快速地 配置自己的高速计数器功能。
高速计数器模式12S7-200 CPU从23版以上开始支持高速计数器模式12只有HSC0和HSC3支持模式12HSC0计数高速脉冲输出Q0.0; HSC3计数高速 计数脉冲输出Q0.1用户既可以自己编程使用模式12,也可以在配置高速脉冲输出功能时,通过简单的设置使 能模式12常问问题:CPU 224 XP的高速计数器模式12,是否可以计数30 KHz以上的脉冲?CPU 224 XP支持最多100 KHz的高速脉冲输出S7-200系列CPU只有高速计数器 HSC0, HSC3能够被设置为模式12,使用的输入端子为I0.0, I0.1,而不是特高速输入端 子:I0.3、I0.4、I0.5非特高速脉冲信号输入端由于硬件电路的限制(如光电耦合等)只能 支持最高30 KHz的高速脉冲输入用户使用高速计数器模式12时不需要任何外部连线,Q0.0(Q0.1)与I0.0(I0.1)通过集成 电路内部关联,越过了外部信号处理电路,因此HSC0(HSC1)可以计100KHz或者更高 频率的脉冲用户在使用向导配置S7-200内部PTO/PWM操作时,勾选“使用高速计数 器HSCx (模式12)自动计数线性PTO生成的脉冲”即可。
高速计数器怎样占用输入点?高速计数器根据被定义的工作模式,按需要占用CPU上的数字量输入点每一个计数器都 按其工作模式占用固定的输入点在某个模式下没有用到的输入点,仍然可以用作普通输入 点;被计数器占用的输入点(如外部复位),在用户程序中仍然可以访问到为什么高速计数器不能正常工作?在程序中要使用初次扫描存储器位SM0.1来调用HDEF指令,而且只能调用一次如果用 SM0.0调用或者第二次执行HDEF指令会引起运行错误,而且不能改变第一次执行HDEF 指令时对计数器的设定对高速计数器如何寻址?为什么从SMDx中读不出当前的计数值?可以直接用HC0; HC1; HC2; HC3; HC4; HC5对不同的高速计数器进行寻址读取当前 值,也可以在状态表中输入上述地址直接监视高速计数器的当前值SMDx不存储当前值, 参见上述表2高速计数器的计数值是一个32位的有符号整数高速计数器如何复位到0?-选用带外部复位模式的高速计数器,当外部复位输入点信号有效时,高速计数器复位为0 -也可使用内部程序复位,即将高速计数器设定为可更新初始值,并将初始值设为0,执行 HSC指令后,高数计数器即复位为0高速计数器的值在复位后是复位到初始值还是“0”值?外部复位会将当前值复位到0值而不是初始值;内部复位则将当前值复位到初始值。
如果 你设定了可更新初始值,但在中断中未给初始值特殊寄存器赋新值,则在执行HSC指令后, 它将按初始化时设定的初始值赋值为何给高速计数器赋初始值和预置值时后不起作用,或效果出乎意料?高速计数器可以在初始化或者运行中更改设置,如初始值、预置值其操作步骤应当是:1. 设置控制字节的更新选项需要更新哪个设置数据,就把控制字节中相应的控制位置位 (设置为“1”);不需要改变的设置,相应的控制位就不能设置2. 然后将所需的值送入初始值和预置值控制寄存器3. 执行HSC指令在Micro/WIN中的命令菜单中选择Tools (工具)> Instruction Wizard (指令向导),然后 在指令窗口中选择HSC向导,图1.选择HSC向导第一步,项目编译无错误后,选择HSC编号和模式,详细信息请见"表1.高速计数器的模式 及输入点图2.高速计数器及模式选择第二步,配置初始化信息图3. HSC初始化选项在上图中:1. 为初始化子程序命名,或者使用默认名称2. 设置计数器预置值:可以为整数、双字地址或符号名:如5000、VD100、PV_HC1用 户可使用全局符号表中双字整数对应的符号名如果用户输入的符号名尚未定义,点击'下 一步'后会看到:点击'Yes'。
填入地址和注释,注意:地址必须为双字地址,注释可以不填3. 设置计数器初始值:可以为整数、双字地址或符号名:5000、VD100、CV_HC14. 初始化计数方向:增,减5. 对于带外部复位端的高速计数器,可以设定复位信号为高电平有效或者低电平有效6. 对于带外部启动端的高速计数器,可以设定启动信号为高电平有效或者低电平有效如 果使用的高速计数器或工作模式没有外部复位或启动端,则对应选项为虚7. 使用A/B相正交计数器时,可以将计数频率设为1倍速或4倍速使用非A/B相正交计 数器时,此项为虚注意:所谓“高/低电平有效”指的是在物理输入端子上的有效逻辑电平,即可以使LED灯点 亮的电平这取决于源型/漏型输入接法,并非指实际电平的高、低第三步:配置中断事件及步骤总数:图4.配置中断及步骤如图4所示,一个高速计数器最多可以有3个中断事件,在白色方框中填写中断服务程 序名称或者使用默认名称:在这里配置的中断事件并非必须,系由用户根据自己的控制工艺要求选用1. 外部复位输入有效值是中断,如果使用的高速计数器模式不具有外部复位端,则此项为 虚2. 方向控制输入状态改变时的中断,有以下3种情况会产生该中断:o单项计数器的内部或外部方向控制位改变瞬间o双相计数器增、减时钟交替的瞬间o A/B相脉冲相对相位(超前或滞后)改变时瞬间3. 当前值等于预置值时产生的中断,通过向导,可以在该中断的服务程序中重新设置高速 计数器的参数,如预置值、当前值。
一个这样的过程称为一步4. 填写HSC的步数,最多可以设置10步第五步、定义高速计数器每一步中的操作:图5. HSC第1步在这里配置的是当前值等于设定值中断的服务程序中的操作:1.向导会自动为当前值等于预置值匹配一个新的中断服务程序,用户可以对其重新命名, 或者使用默认的名称2.3.4.5.勾选后,用户在右侧输入新的预置值勾选后,用户在右侧输入新的当前值如果选用的高速计数器模式有内部方向控制位点击下一步,继续配置其余步第六步、完成向导:图6.完成向导第七步、调用子程序:注意:• HSC_INIT为初始化子程序,请在主程序块中使用SM0.1或一条边沿触发指令调用一次 此子程序•向导生成的中断服务程序及子程序都未上锁,用户可以根据自己的控制需要进行修改。












