高速输入降噪
使用 HSC 输入对高速脉冲计数
说明
高速输入接线必须使用屏蔽电缆 连接 HSC 输入通道 I0.0、I0.1、I0.2 和 I0.3 时,所使用屏蔽电缆的长度不应超过 50 m。 要正确操作高速计数器,可能需要执行以下一项或两项操作。 ● 调整 HSC 通道所用输入通道的“系统块”数字量输入滤波时间。在 S7-200 SMART CPU 中。在 HSC 通道对脉冲进行计数前应用输入滤波。这意味着,如果 HSC 输入脉 冲以输入滤波过滤掉的速率发生,则 HSC 不会在输入上检测到任何脉冲。请务必将 HSC 的每路输入的滤波时间组态为允许以应用需要的速率进行计数的值。这包括方向 和复位输入。下表所示为各种输入滤波组态可检测到的大输入频率。
● 如果生成 HSC 输入信号的设备未将输入信号驱动为高电平和低电平,则高速时可能 出现信号失真。如果设备的输出是集电极开路晶体管,则可能出现这种情况。晶体管 关闭时,没有任何因素将信号驱动为低电平状态。信号将转换为低电平状态,但所需 时间将取决于电路的输入电阻和电容。这种情况可能导致脉冲丢失。可通过将下拉电 阻接到输入信号的方法避免这种情况,如下图所示。由于 CPU 的输入电压是 24V,因 此电阻的额定功率必须为高功率。100 欧 5 瓦的电阻是一个合适的选择。
高速计数器编程
可以使用高速计数器向导简化 HSC 编程任务。该向导可帮助您选择计数器类型/模式、预 设值/当前值以及计数器选项,并生成必要的特殊存储器分配、子例程和中断例程。 说明 使用高速计数器计数高频信号,必须确保对其输入进行正确接线和滤波。 在 S7-200 SMART CPU 中,所有高速计数器输入均连接至内部输入滤波电路。S7-200 SMART 的默认输入滤波设置为 6.4 ms,这样便将大计数速率限定为 78 Hz。如需以更 高频率计数,必须更改滤波器设置。 有关系统块滤波选项、大计数频率、屏蔽要求及外部下拉电路的详细信息,请参见“高 速输入降噪 (页 240)”。
组态高速计数器
请使用以下操作之一组态高速计数器向导:
● 打开向导:在“工具”(Tools) 菜单功能区的“向导”(Wizards) 区域中选择“高速计数 器”(High-Speed Counter)。
● 打开向导:在项目树的“向导”(Wizards) 文件夹中双击“高速计数器”(High-Speed Counter) 节点。 打开向导后,分配 HSC 设置值。可浏览向导设置页面、修改参数,然后生成新向导程序 代码。
要使用高速计数器,程序必须执行以下基本任务: ● 定义计数器和模式(对每个计数器执行一次 HDEF 指令)。
● 在 SM 存储器中设置控制字节。 ● 在 SM 存储器中设置当前值(起始值)。 ● 在 SM 存储器中设置预设值(目标值)。 ● 分配并启用相应的中断例程。 ● 激活高速计数器(执行 HSC 指令)。
HDEF 指令设置计数模式
HDEF 指令分配 HSC 计数器模式。下表列出了为时钟、方向控制和复位功能分配的物理 输入。同一输入无法用于两个不同的功能,但是其高速计数器的当前模式未使用的任何输 入均可用于其它用途。例如,如果在使用 I0.0 和 I0.4 的模式 1 下使用 HSC0,则 I0.1、 I0.2 和 I0.3 可用于沿中断、HSC3 或运动控制输入。
说明 HSC0 的所有计数模式始终使用 I0.0,而 HSC2 的所有模式始终使用 I0.2,因此使用这些 计数器时,这些输入绝不会用于其它用途。
HSC 模式 6 和 7 使用计数模式 6 或 7 时,如果加时钟和减时钟输入的上升沿在 0.3 微秒内发生,高速计 数器可能认为这些事件同时发生。如果发生这种情况,当前值不改变,而且计数方向不改 变。只要加时钟和减时钟输入的上升沿之间的间隔大于该时段,高速计数器就能够单独捕 获每个事件。在两种情况下,均不生成错误,而且计数器保持正确计数值。
HDEF 指令设置复位有效电平和计数速率
HSC0 和 HSC2 计数器有两个控制位,用于组态复位的激活状态并选择 1x 或 4x 计数模 式( AB 正交相计数器)。这些控制位位于各自计数器的 HSC 控制字节内,仅当执 行 HDEF 指令时才会使用。下表定义了这些控制位。
说明
执行 HDEF 指令之前,必须将这两个控制位设置为所需状态。否则,计数器会采用所选 计数器模式的默认组态。 执行 HDEF 指令后,将无法再更改计数器设置,除非首先将 CPU 设为 STOP 模式。
使用 HSC 指令启用计数器、设置计数方向、载入预设值/当前计数值
HSC 指令在执行期间使用控制字节。分配计数器和计数器模式之后,即可对计数器的动 态参数进行编程。每个高速计数器的 SM 存储器内均有一个控制字节,允许执行以下操 作: ● 启用或禁用计数器 ● 控制方向(模式 0 和模式 1)或所有其它模式的初始计数方向 ● 加载当前值 ● 加载预设值
使用程序读取 HSC 当前值
只能使用后面带有计数器标识符编号(0、1、2 或 3)的数据类型 HC(高速计数器当前 值)读取每个高速计数器的当前值,如下表所示。无论何时想要读取当前值,都可以在状 态图表或用户程序中使用 HC 数据类型。HC 数据类型为只读双字值;不能使用 HC 数据 类型将新的当前计数值写入高速计数器。