说明:
S7-200 提供了利用高速计数器计数脉冲串的选项。使用附件 "Frequency" library, 脉冲串的频率从计数器信号中计算出来,例如,相关的转化之后,从计数器信号中可以确定电机的速度。
概要:
此项任务分为以下三步:
1. 定义一个高速计数器来获取脉冲序列频率
2. 创建程序编码
3. 转换频率为速度
1. 定义一个高速计数器来获取脉冲串频率
首先,使用 STEP 7 Micro/WIN Instruction Wizard 必须用一个高速脉冲计数器来计算外部脉冲。
表格01 列出了 S7-200 可以提供的高速计数器,输入使用和大的可测量频率。
高速计数器 | 时钟输入 | 大输入频率 | CPU | HC0 | E0.0 | 30 kHz | 221, 222, 224, 224XP, 224XPsi, 226 | HC1 | E0.6 | 30 kHz | 221, 222, 224, 224XP, 224XPsi, 226 | HC2 | E1.2 | 30 kHz | 221, 222, 224, 224XP, 224XPsi, 226 | HC3 | E0.1 | 30 kHz | 221, 222, 224, 224XP, 224XPsi, 226 | HC4 | E0.3 | 200 kHz | 224XP, 224XPsi | HC5 | E0.4 | 200 kHz | 224XP, 224XPsi | 表格01
程序:
No. | 说明 | 1 | 通过“工具”菜单打开 STEP 7 Micro/WIN 中的 Instruction Wizard 菜单。 |
2 | 然后从组态目录中选择高速计数器 “HSC”。点击“Next”。 |
3 | 将模式设置到“0”进行单相的上下计算,选择一个计数器 (比如 “HC4”)。 |
4 | 设置子程序,计数器预调整,计数器值和计数方位。点击“Next”。 |
5 | 在下面的窗口中,还是预设置,不要给
“Interrupt on Current Value equal Preset Value (CV = PV)”设置复选标记。 |
6 | 点击“完成”按钮关闭 Instructions Wizard 。 |
表格02
2. 创建程序代码
No. | 说明 | 1 | 在操作块的网络 1 中使用比特 SM0.1 初始值来调用 Instructions Wizard 为高速计数器产生的初始区组。 |
2 | 在网络 2 中使用下表中的相同名字,从库中循环调用 SM0.0“频率”块 。 |
通过“Active”输入来使能功能块 (如果未使能,那么“Hz”输出参数值为“0”)。
将 Instructions Wizard 选择的计数器填入“Counter”地址。
使用任意的双字地址(格式: REAL)填入到输入输出参数“Hz”上,用来以赫兹为单位显示测量出的频率值。
通过 Data Log 功能,可以使“Trigger” 根据频率特性输出一个脉冲信号.
3 | “Frequency”库需要 16 字节的全局变量。因此需通过“文件”菜单>“库记忆分配”...来指定一个地址。 |
4 | 通过“符号表”视图可以得到“Frequency”库的符号地址。 “Time_interval”符号为频率计算以秒来定义可测量的间隔,默认值是 1 秒的间隔时间,可以修改。 |
5 | 在例子项目“Frequency”的网络 3 中,为获取频率时间 Data Log 功能已经集成在一个存储器模块上。通过 “Active”和 “Trigger”信号的与操作,当使能“Frequency”块时,每个频率都会根据“Time_interval”的设置的时间间隔被记录下来。 |
图. 11
说明:
Data Log 功能通过 Data Log Wizard 来执行,记录的值可以通过 S7-200 的浏览器读取。
3. 频率转换到速度
运用以下公式获得速度:
n = 60 * f / p
n = 每分的速度-1f = 频率 Hz
p = 电机运转需要的脉冲数
下载:
下载的 "frequency.zip" 包含以下文件:
文件 | 说明 | "frequency.mwl" 库 | - 包含 "Frequency" 块 (参照 表格03,第2步 ) | "frequency.mwp" 项目 | - 这个常问问题的例子项目 | "tspeed01.mwp" 项目 | - 通过循环独立的时间中断信号来完成这个任务(设置范围: 1 到 255 ms) |
|