• {{item.name}}
自动化系统 {{item.name}}
{{item2.name}}
更多

高速计数器支持的类型

star star star star star
0 分
  • 产品升级
  • 产品选型
  • 使用操作
  • 综合介绍
  • 基础理论
  • 产品推广
  • S7-1200 G2
发布时间:2025年12月12日
  • 0
  • 250
本章节介绍 S7-1200 G2 高速计数器支持的类型

S7-1200 G2 V1.0 及 V4.1 版本 CPU 本体集成的高速计数器支持三种计数类型,下边将分别介绍这三种类型相关设置及编程

1.计数

1.1计数组态

在 S7-1200 G2 CPU 的硬件组态中,可以配置高速计数器的参数,其中组态成计数模式、频率模式、周期模式需要在计数类型中配置,如图 1 所示。

图形用户界面, 应用程序

图1基础组态

①激活高速计数器。

②设置计数类型:计数模式、频率模式、周期模式。

③设置运行模式:单相、两相位、A/B 计数器、A/B 计数器四倍频,值得注意的是组态 A/B 计数器四倍频会使得计数值变为组态 A/B 计数器的 4 倍,但频率相比组态 A/B 计数器不会发生变化。

④计数方向:取决于用户程序(通过指令修改),还是外部输入,该功能只与单相计数有关。

⑤初始计数方向:正向、反向。

⑥频率测量周期:与频率模式、周期模式有关,只能选择 1s、0.1s、0.01s,一般情况下当脉冲频率比较高时选择更小的测量周期可以更新的更加及时,当脉冲频率比较低时选择更大的测量周期可以测量的更准确。

设置硬件输入点,如图 2 所示。图形用户界面, 应用程序

AI 生成的内容可能不正确。

图2 硬件输入

在 I/O 地址处查看高速计数器起始地址,默认情况下,HSC1 为 992,HSC2 为996,HSC3 为 1000,HSC4 为 10004,HSC5 为 1008,HSC6 为 1012,HSC7 为 1016,HSC8 为 1020 如图3 所示。

注意:对于高速计数器的相关硬件输入点,一般情况下需要设置其滤波时间,具体参见高速计数器概述章节中的滤波设置。

如果组态计数模式、频率模式,可以在不使用指令情况下直接读取计数值与频率值。

图形用户界面, 文本, 应用程序, 电子邮件

AI 生成的内容可能不正确。

图3 高速计数器 I/O 地址

在程序中读取基于起始地址的有符号双整数变量即为计数值或者频率值(单位:Hz),一般使用立即读取方式,这样数值更准确,如图4 所示。

图形用户界面

AI 生成的内容可能不正确。

图4 编程

如果组态为计数模式,则计数启动后,计数值使用组态中的初始计数值开始计数,如图5 所示。图形用户界面, 文本, 应用程序

AI 生成的内容可能不正确。

图5 初始计数值

1.2 指令编程

在 TIA Portal 软件集成的工艺指令文件夹中可以找到 CTRL_HSC_EXT 指令,如图6 所示

表格

AI 生成的内容可能不正确。

图6 指令文件夹

CTRL_HSC_EXT 指令支持所有功能,例如门功能、同步功能、捕捉功能、计数、频率测量、周期测量、修改参数等。

如果只需要计数或者测量频率,以及硬件门、复位计数值为零、比较输出等基本功能,而其他功能都不使用,可以只组态,然后去读取相应计数器地址即可,无需调用指令。

直接读取地址与调用 CTRL_HSC_EXT 指令区别如表1所示。

表1 指令调用比较


无指令调用CTRL_HSC_EXT
计数测量直接读地址支持
频率测量直接读地址支持
周期测量
支持
软件门 支持
硬件门硬件操作硬件操作
同步计数值到零硬件操作支持
同步计数值到零以外的值 支持
捕捉功能支持
比较输出硬件操作硬件操作
修改当前计数值支持
外部修改计数方向硬件操作硬件操作
软件修改计数方向 支持
修改参考值 1 支持
修改频率更新周期支持
修改计数同步值 支持
修改参考值 2 支持
修改计数溢出限值 支持
修改计数溢出行为 支持
事件组态支持支持

CTRL_HSC_EXT 各参数含义见表2。

表2 CTRL_HSC_EXT 各参数含义

参数声明数据类型描述
HSCINHW_HSC高速计数器硬件标识符
CTRLIN_OUTVariant连接 HSC 参数,支持 HSC_Count、HSC_Frequency 和 HSC_Period 数据类型变量,具体使用参见后文介绍
DONEOUTBool=1 表示已完成
BUSYOUTBool始终为 0
ERROROUTBool=1 表示错误
STATUSOUTWord执行条件代码

其中 HSC 参数高速计数器硬件标识符,需要在 PLC 变量表 > 系统常量找到对应标识符,如图 7 所示。图形用户界面

AI 生成的内容可能不正确。

图7 硬件标识符

2.周期

2.1周期组态

1. CPU 硬件组态,启用高速计数器,计数类型选择周期,设定频率测量周期,如图 8 所示。图形用户界面, 应用程序

AI 生成的内容可能不正确。

图8 周期测量组态

2. 建立数据块,并建立系统数据类型为 HSC_Period 的变量,如图9 所示。

表格

AI 生成的内容可能不正确。

图9 HSC_Period

数据类型 HSC_Period 用于“周期”类型的高速计数器,其数据结构与功能参考表3。

表3 HSC_Period 数据结构

参数名称参数类型数据类型说    明
ElapsedTime输出UDINT前两个测量时间周期的最后一个脉冲的时间之差
EdgeCount输出UDINT测量时间周期内的脉冲个数
EnHSC输入BOOLEnHSC=1,启用周期测量;EnHSC=0,禁用
EnPeriod输入BOOL启用 NewPeriod 值。
NewPeriod输入INT新的测量时间周期

注意:

  • 对于周期测量,高速计数器指令“CTRL_HSC_EXT”没有直接输出脉冲周期,脉冲周期可按照如下公式编程计算:
  • Period = ElapsedTime/EdgeCount。

2.2 指令编程

在 OB1 里调用指令块 CTRL_HSC_EXT,如图 10 所示。

表格

AI 生成的内容可能不正确。

图10 调用 CTRL_HSC_EXT

S7-1200 G2 CPU 高速计数器通道接入脉冲信号,如图 11 所示,通过程序对高速计数器软件门信号 EnHSC 信号置位,可以在线监控数据块的数据变化。

表格

图11 监控数值

根据周期计算公式,

脉冲周期 = ElapsedTime/EdgeCount = 1000291000/1004 = 996305 ns ≈ 0.001 s

由此可以得出所测量的脉冲信号周期为 0.001 秒。

3.频率

3.1频率组态

1. CPU 硬件组态,启用高速计数器,计数类型选择频率,设定频率测量周期,如图12 所示。图形用户界面, 应用程序

图12 频率组态

2. 建立数据块,并建立数据类型为 HSC_Frequency 的变量,如图 13 所示。

表格

AI 生成的内容可能不正确。

图13 HSC_Frequency

数据类型 HSC_Frequency 用于“频率”类型的高速计数器,其数据结构与功能参考表4。

表4 HSC_Frequency 数据结构

参数名称参数类型数据类型说    明
Frequency输出DINT计算输出的频率值
EnHSC输入BOOLEnHSC=1,启用频率测量;EnHSC=0,禁用
EnPeriod输入BOOL启用 NewPeriod 值。
NewPeriod输入INT新的测量时间周期

3.2指令编程

在 OB1 里调用指令块 CTRL_HSC_EXT,如图 14 所示。

表格

AI 生成的内容可能不正确。

图14 调用 CTRL_HSC_EXT

CPU 高速计数器通道接入脉冲信号,如图 15 所示,通过程序对高速计数器软件门信号 EnHSC 信号置位,即可在 Frequency 处监控到频率值。

表格

图15 监控频率值

注意:将 HSC 配置成频率模式时调用 CTRL_HSC/CTRL_HSC_EXT 指令不是必须的。只要在硬件配置里使能并组态高速计数器即可正常计数,默认情况下 ID992 的值即为 HSC1 的频率值。

  • 评论
更多
  • 分享

    扫码分享

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。