大家好,这里是电工班,一个专注于分享电气知识与维修经验的公众号。
今天我们来了解下西门子S7-1200的脉冲控制功能。
首先我们来了解下1200自带的脉冲功能及主要的注意事项。
除了CPU本体自带的脉冲功能,
还可以组态 CPU 或信号板 (SB, Signal Board) 的输出, 使其具有脉冲发生器或脉冲串输出 (PTO, Pulse-Train Output) 的功能。 脉冲宽度调制 (PWM, Pulse-Width Modulation) 指令和基本运动指令使用这些输出。 用户程序中的其它指令无法使用脉冲串输出将 CPU 或 SB 的输出组态为脉冲发生器时(供 PWM 或基本运动控制指令使用),这会从Q存储器中移除相应的输出地址(Q0.0、Q0.1、Q4.0 和 Q4.1)。
如果用户程序向用作脉冲发生器的输出写入值,则 CPU 不 会将该值写入到物理输出。
如 S7-1200 系统手册中所述,脉冲输出发生器的最大脉冲频率对于 CPU 的数字量输出 为 100 KHz,
组态基本运动指令时,请注意,如果被组态轴的最大速度或频率超出了此硬件限制,STEP 7 Basic 并不会提醒用户。 这可能会导致应用出现问题,因此请始终确保不会超 出硬件的最大脉冲频率。
上面的内容是关于脉冲功能的基本知识,下面我们逐一了解,这个脉冲功能都能用来干点啥?
首先是,能够实现高速计数功能。
高速计数器 (HSC, High-Speed Counter) 可用作增量轴编码器的输入。 该轴编码器每转 提供指定数量的计数值以及一个复位脉冲。 来自轴编码器的时钟和复位脉冲将输入到 HSC 中。 先是将若干预设值中的第一个装载到 HSC 上,并且在当前计数值小于当前预设值的时段 内计数器输出一直是激活的。 在当前计数值等于预设值时、发生复位时以及方向改变 时,HSC 会提供一个中断。 每次出现“当前计数值等于预设值”中断事件时,都将装载一个新的预设值,同时会设置输 出的下一状态。 当出现复位中断事件时,将设置输出的第一个预设值和第一个输出状 态,并重复该循环。 由于中断发生的频率远低于 HSC 的计数速率,因此能够在对 CPU 扫描周期影响相对较 小的情况下实现对高速操作的精确控制。 通过提供中断,可以在独立的中断例程中执行 每次的新预设值装载操作以实现简单的状态控制。(或者,也可在单个中断例程中处理 所有中断事件。)
所有 HSC 在同一计数器运行模式下的工作方式都相同。
1.具有内部方向控制的单相计数器、
2.具有外部方向控制的单相计数器、
用户可选择 是否激活复位输入来使用各种 HSC 类型。 如果激活复位输入,则它会清除当前值并在您 禁用复位之前保持清除状态。 频率功能:有些 HSC 模式允许 HSC 被组态(计数类型)为报告频率而非当前脉冲计数 值。 有三种可用的频率测量周期: 0.01、0.1 或 1.0 秒。 频率测量周期决定 HSC 计算并报告新频率值的频率。 报告频率是通过上一测量周期内总 计数值确定的平均值。 如果该频率在快速变化,则报告值将是介于测量周期内出现的最 高频率和最低频率之间的一个中间值。 无论频率测量周期的设置是什么,总是会以赫兹 为单位来报告频率(每秒脉冲个数)。 下表列出了用于与 HSC 相关的时钟、方向控制和复位功能的输入。 同一输入不可用于两个不同的功能,但任何未被其 HSC 的当前模式使用的输入均可 用于其它用途。
例如,如果 HSC1 处于使用内置输入但未使用外部复位 (I0.3) 的模式下,则 I0.3 可以用 于沿中断或 HSC2。
脉冲串输出监视功能始终使用时钟和方向。如果仅为脉冲组态了相应的 PTO 输出,则通常应将方向输出设 置为正计数。 对于仅支持 6 个内置输入的 CPU 1211C,不能使用带复位输入的 HSC3。 对于仅支持 6 个内置输入的 CPU 1211C,不能使用 HSC4。 仅当安装信号板时,CPU 1211C 和 CPU 1212C 才支持 HSC5 和 HSC6。
访问 HSC 的当前值CPU 将每个 HSC 的当前值存储在一个输入 (I) 地址中。下表列出了为每个 HSC 的当前 值分配的默认地址。可以通过修改 CPU 的属性 (页 44)来更改当前值的输入地址。
组态 HSC
用户可编辑 CPU 的“属性”(Properties) 来组态各个 HSC 的参数。 通过编辑 CPU 的“属性”(Properties) 来组态高速计数器的参数,
组态 HSC 之后,在用户程序中使用 CTRL_HSC 指令控 制 HSC 的运行。
使用 CTRL_HSC 指令
CTRL_HSC 指令可控制用于对发生速率比 CPU 扫描速率更快 的事件进行计数的高速计数器。每个 CTRL_HSC 指令都将数据存储在背景数据块中。将 CTRL_HSC 指令插入到用户程序中可创建此背景数据块。
虽然 CTU、CTD 和 CTUD 计数器指令的计数速率受到 CPU 扫描速率的限制,
但 HSC 的运行与 CPU 扫描不同步,能够以高达 100 kHz 的计数速率对事件进行计数(适用于 HSC 1、2 或 3 以及板载 CPU 计数输入组态)。 必须先在 CPU 设备配置的项目设置中组态高速计数器,然后才能在程序中使用高速计数器。
HSC 设备配置设置包括选择计数模式、I/O 连接、中断分配以及是作为高速计数器还是设备来测量脉冲频率。 许多高速计数器组态参数只在项目设备配置中进行设置。 有些高速计数器参数在项目设 备配置中初始化,但以后可以通过程序控制进行修改。
CTRL_HSC 指令参数提供了计数 过程的程序控制: ● 将计数方向设置为 NEW_DIR 值
● 将当前计数值设置为 NEW_CV 值
● 将参考值设置为 NEW_RV 值
● 将周期值(仅限频率测量模式)设置为 NEW_PERIOD 值如果执行 CTRL_HSC 指令后以下布尔标记值被设置为 1,则相应的 NEW_xxx 值将装载 到计数器。执行一次 CTRL_HSC 指令可处理多个请求(同时设置多个标记)。
●DIR = 1 表示请求装载 NEW_DIR 值,0 = 无变化
●CV = 1 表示请求装载 NEW_CV 值,0 = 无变化
●RV = 1 表示请求装载 NEW_RV 值,0 = 无变化
●PERIOD = 1 表示请求装载 NEW_PERIOD 值,0 = 无变化 CTRL_HSC 指令通常放置在触发计数器硬件中断事件时执行的硬件中断 OB 中。 例如, 如果 CV=RV 事件触发计数器中断,则硬件中断 OB 代码块可以执行 CTRL_HSC 指令以 通过装载 NEW_RV 值来更改参考值。 在高速计数器硬件配置期间分配存储当前计 数值的过程映像地址。 可以使用程序逻辑直接读取该计数值,且返回到程序的值将是读 取计数器瞬间的正确计数。
但计数器仍将继续对高速事件计数。程序使用旧的计数值完 成处理前,实际计数值可能会更改。
好了今天的内容就分享到这里。
欢迎大家转发留言。
这里是电工班,我们专注于分享电气知识与维修经验。
咱们下期见。