# 03 高速计数器早期版本

## S7-1200 V4.0 - V4.1 版本高速计数器

### S7-1200 V4.0 - V4.1 版本高速计数器资源

S7-1200 CPU V4.0 - V4.1 本体提供了最多 6 个高速计数器，其独立于 CPU 的扫描周期进行计数。其中 CPU1217C 可测量的脉冲频率最高为 1 MHz（差分信号），其它型号的 S7-1200 CPU 可测量到的单相脉冲频率最高为 100 kHz，A/B 相最高为 80 kHz。如果使用信号板还可以测量单相脉冲频率高达 200kHz 的信号，A/B 相最高为 160 kHz。

S7-1200 CPU 和信号板具有可组态的硬件输入地址与工作模式，因此可测量到的高速计数器频率与高速计数器号无关，而与所使用的 CPU 和信号板的硬件输入地址有关。

表 1 和表 2 显示了 CPU 集成输入点与信号板可用于高速计数器的信息。

表 1\. CPU 集成点输入的最大频率

|     |     |     |     |
| --- | --- | --- | --- |
| **CPU** | **CPU 输入通道** | **单相或两相模式** | **A/B 相正交模式** |
| CPU1211C | Ia.0—Ia.5 | 100 kHz | 80 kHz |
| CPU1212C | Ia.0—Ia.5 | 100 kHz | 80 kHz |
| Ia.6—Ia.7 | 30 kHz | 20 kHz |
| CPU1214(F)C、CPU1215(F)C | Ia.0—Ia.5 | 100 kHz | 80 kHz |
| Ia.6—Ib.5 | 30 kHz | 20 kHz |
| CPU1217C | Ia.0—Ia.5 | 100 kHz | 80 kHz |
| Ia.6—Ib.1 | 30 kHz | 20 kHz |
| Ib.2—Ib.5 (Ib.2+,Ib.2- 到 Ib.5+,Ib.5-） | 1 MHz | 1 MHz |

表 2\. 信号板信息

|     |     |     |     |     |     |
| --- | --- | --- | --- | --- | --- |
| 信号板类型 |     | 订货号 | **信号板输入通道** | **单相或两相模式** | **A/B 相正交模式** |
| DI  | 4×24VDC | 6ES7221-3BD30-0XB0 | Ie.0—Ie.3 | 200 kHz | 160 kHz |
| 4×5VDC | 6ES7221-3AD30-0XB0 | Ie.0—Ie.3 | 200 kHz | 160 kHz |
| DI/DQ | 2DI/2×24VDC | 6ES7223-0BD30-0XB0 | Ie.0—Ie.1 | 30 kHz | 20 kHz |
| 2DI/2×24VDC | 6ES7223-3BD30-0XB0 | Ie.0—Ie.1 | 200 kHz | 160 kHz |
| 2DI/2×5VDC | 6ES7223-3AD30-0XB0 | Ie.0—Ie.1 | 200 kHz | 160 kHz |

### S7-1200 V4.0 - V4.1 版本高速计数器工作模式

1.  单相计数器，外部方向控制。
2.  单相计数器，内部方向控制。
3.  双相增/减计数器，双脉冲输入。
4.  A/B 相正交脉冲输入。

### S7-1200 V4.0 - V4.1 版本高速计数器组态及编程

S7-1200 V4.0 版本高速计数器只支持指令 CTRL_HSC，支持计数和频率测量，需要通过读取 ID 地址获得计数与频率值。

S7-1200 V4.1 版本高速计数器还支持指令 CTRL\_HSC\_EXT，但仅支持连接 HSC_Period 数据类型变量，因此仅能用于周期测量，以及修改频率更新周期。

此外 S7-1200 V4.0 - V4.1 版本支持功能：复位为初始值（即最新版本的同步功能）、通过 CTRL_HSC 修改参数、事件组态功能。

请参考以下章节：

[基本组态与使用](01-HSC.md#基础使用)

[指令介绍](01-HSC.md#指令基本介绍)

[周期测量](01-HSC.md#ctrl_hsc_ext-指令-周期测量实现举例)

[复位为初始值（同步）](01-HSC.md#同步功能)

[修改参数](01-HSC.md#修改参数)

[事件组态](01-HSC.md#事件组态)

## S7-1200 V3.0 及以前版本高速计数器

### S7-1200 V3.0 及以前版本高速计数器资源

S7-1200 V3.0 及以前版本高速计数器提供了最多 6 个（CPU1214C 及 CPU1215C V3.0）高速计数器，其独立于 CPU 的扫描周期进行计数。可测量的单相脉冲频率最高为 100 kHz，双相或 A/B 相最高为 80 kHz，高速计数器可用于连接增量型旋转编码器。如果使用信号板还可以测量单相脉冲频率高达 200 kHz 的信号，A/B 相最高为 160 kHz。具体参见表 3 - 表 6。

表 3\. 只使用 CPU 集成点所能使用的高速计数器个数

|     |     |
| --- | --- |
| CPU | HSC |
| 1211C | 3 (HSC\_1, HSC\_2, HSC_3) |
| 1212C | 4 (HSC\_1, HSC\_2, HSC\_3, HSC\_4) |
| 1214C | 6 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC\_5, HSC\_6) |
| 1215C V3.0 | 6 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC\_5, HSC\_6) |

表 4\. 使用 CPU 集成点与信号板所能使用的高速计数器个数

|     |     |     |     |
| --- | --- | --- | --- |
| CPU | SB 1223 2DI/2DO | SB 1223 2DI/2DO 200kHz | SB 1221 4DI 200kHz |
| CPU1211C | 4 (HSC\_1, HSC\_2, HSC\_3, HSC\_5) | 4 (HSC\_1, HSC\_2, HSC\_3, HSC\_5) | 5 (HSC\_1, HSC\_2, HSC\_3, HSC\_5, HSC_6) |
| CPU1212C | 5 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC_5) | 5 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC_5) | 6 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC\_5, HSC\_6) |
| CPU1214C | 6 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC\_5, HSC\_6) | 6 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC\_5, HSC\_6) | 6 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC\_5, HSC\_6) |
| CPU1215C V3.0 | 6 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC\_5, HSC\_6) | 6 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC\_5, HSC\_6) | 6 (HSC\_1, HSC\_2, HSC\_3, HSC\_4, HSC\_5, HSC\_6) |

表 5\. CPU 集成点与信号板的最大频率

|     |     |     |     |     |     |
| --- | --- | --- | --- | --- | --- |
| 最大频率\[kHz\] |     | CPU | 信号板 |     |     |
| 高速计数器 | 单/多相 | DI/DO | 2DI/2DO | 200 kHz |     |
| 2DI/2DO | 4DI |
| HSC_1 | 单相  | 100 | 30  | 200 | 200 |
| 多相  | 80  | 20  | 160 | 160 |
| HSC_2 | 单相  | 100 |     |     | 200 |
| 多相  | 80  |     |     | 160 |
| HSC_3 | 单相  | 100 |     |     |     |
| 多相  | 80  |     |     |     |
| HSC_4 | 单相  | 30  |     |     |     |
| 多相  | 20  |     |     |     |
| HSC_5 | 单相  | 30  | 30  | 200 | 200 |
| 多相  | 20  | 20  | 160 | 160 |
| HSC_6 | 单相  | 30  |     |     | 200 |
| 多相  | 20  |     |     | 160 |

表 6\. 信号板信息

| 信号板类型 |     | 订货号 |
| --- | --- | --- |
| DI  | 4×24VDC 200 kHz | 6ES7221-3BD30-0XB0 |
| 4×5VDC 200 kHz | 6ES7221-3AD30-0XB0 |
| DI/DQ | 2DI/2×24VDC | 6ES7223-0BD30-0XB0 |
| 2DI/2×24VDC 200 kHz | 6ES7223-3BD30-0XB0 |
| 2DI/2×5VDC 200 kHz | 6ES7223-3AD30-0XB0 |

### S7-1200 V3.0 及以前版本高速计数器工作模式

1.  单相计数器，外部方向控制。
2.  单相计数器，内部方向控制。
3.  双相增/减计数器，双脉冲输入。
4.  A/B 相正交脉冲输入。
5.  监控 PTO 输出（仅限固件版本 V2.2 以前的 S7-1200 CPU）。

### S7-1200 V3.0 及以前版本高速计数器的硬件输入定义和工作模式

S7-1200 V3.0 及以前版本高速计数器的硬件输入定义和工作模式是固定的，无法修改，具体参见表 7。

表 7\. 高速计数器硬件输入定义与工作模式

|     |     |     |     |     |     |     |
| --- | --- | --- | --- | --- | --- | --- |
| 描述  |     |     | 输入点定义 |     |     | 功能  |
| HSC | HSC1 | 使用 CPU 集成 I/O 或信号板或监控 PTO0 | I0.0  <br>I4.0  <br>PTO0 | I0.1  <br>I4.1  <br>PTO0 方向 | I0.3  <br>I4.3 |     |
| HSC2 | 使用 CPU 集成 I/O 或信号板或监控 PTO1 | I0.2  <br>I4.2  <br>PTO1 | I0.3  <br>I4.3  <br>PTO1 方向 | I0.1  <br>I4.1 |     |
| HSC3 | 使用 CPU 集成 I/O | I0.4 | I0.5 | I0.7 |     |
| HSC4 | 使用 CPU 集成 I/O | I0.6 | I0.7 | I0.5 |     |
| HSC5 | 使用 CPU 集成 I/O 或信号板 | I1.0  <br>I4.0 | I1.1  <br>I4.1 | I1.2  <br>I4.3 |     |
| HSC6 | 使用 CPU 集成 I/O 或信号板 | I1.3  <br>I4.2 | I1.4  <br>I4.3 | I1.5  <br>I4.1 |     |
| 模式  | 单相计数，内部方向控制 |     | 时钟  |     |     | 计数或频率 |
| 复位  | 计数  |
| 单相计数，外部方向控制 |     | 时钟  | 方向  |     | 计数或频率 |
| 复位  | 计数  |
| 双相计数，两路时钟输入 |     | 增时钟 | 减时钟 |     | 计数或频率 |
| 复位  | 计数  |
| A/B 相正交计数 |     | A相  | B相  |     | 计数或频率 |
| Z相  | 计数  |
| 监控 PTO 输出 |     | 时钟  | 方向  |     | 计数  |

![](images/4.gif)注意：

1.  并非所有的 CPU 都可以使用 6 路高速计数器，如 CPU1211C 使用信号板的情况下最多也只能支持 5 路高速计数器。
2.  由于不同计数器在不同的模式下，同一个物理点会有不同的定义，在使用多个计数器时需要注意不是所有计数器可以同时定义为任意工作模式。
3.  高速计数器输入使用与普通数字量输入相同的地址，当某个输入点已定义为高速计数器的输入点时，就不能再应用于其它功能，但在某个模式下，没有用到的输入点还可以用于其它功能的输入。
4.  固件版本 V2.2 以前的监控 PTO 的模式只有 HSC1 和 HSC2 支持，使用此模式时，不需要外部接线，CPU 在内部已作了硬件连接，可直接检测通过 PTO 功能所发脉冲。
5.  使用信号板最多接入 2 路高速计数器，所使用的高速计数器号可以是 HSC1、HSC2、HSC5、HSC6 其中 2 组。

### S7-1200 V3.0 及以前版本高速计数器组态及编程

S7-1200 V3.0 及以前版本高速计数器只支持指令 CTRL_HSC，支持计数和频率测量，需要通过读取 ID 地址获得计数与频率值。

S7-1200 V2.2 版本及以前支持监控 PTO 输出，此时只需在计数类型处选择“轴”，无需接线与其他配置，其余读取 ID 地址获得计数与计数类型相同，此处不再赘述。

此外该版本支持功能：复位为初始值（即最新版本的同步功能）、通过 CTRL_HSC 修改参数、事件组态功能。

请参考以下章节：

[基本组态与使用](01-HSC.md#基础使用)

[指令介绍](01-HSC.md#指令基本介绍)

[复位为初始值（同步）](01-HSC.md#同步功能)

[修改参数](01-HSC.md#修改参数)

[事件组态](01-HSC.md#事件组态)