文章目录[隐藏]
说明:
S7-200 提供了利用高速计数器计数脉冲串的选项。使用附件 "Frequency" library, 脉冲串的频率从计数器信号中计算出来,例如,相关的转化之后,从计数器信号中可以确定电机的速度。
1. 定义一个高速计数器来获取脉冲串频率
首先,使用 STEP 7 Micro/WIN Instruction Wizard 必须用一个高速脉冲计数器来计算外部脉冲。
表格01 列出了 S7-200 可以提供的高速计数器,输入使用和最大的可测量频率。
表格01
高速计数器 | 时钟输入 | 最大输入频率 | 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 |
程序:
步骤1:
通过“工具”菜单打开 STEP 7 Micro/WIN 中的 Instruction Wizard 菜单。
步骤2:
然后从组态目录中选择高速计数器 “HSC”。点击“Next”。
步骤3:
将模式设置到“0”进行单相的上下计算,选择一个计数器 (比如 “HC4”)。
Note:请参照表 01选择高速计数器。
步骤4:
设置子程序,计数器预调整,计数器值和计数方位。点击“Next”。
步骤5:
在下面的窗口中,还是预设置,不要给“Interrupt on Current Value equal Preset Value (CV = PV)”设置复选标记。
步骤6:
点击“完成”按钮关闭 Instructions Wizard 。
2. 创建程序代码
步骤1:
在操作块的网络 1 中使用比特 SM0.1 初始值来调用 Instructions Wizard 为高速计数器产生的初始区组。
步骤2:
在网络 2 中使用下表中的相同名字,从库中循环调用 SM0.0“频率”块 。
通过“Active”输入来使能功能块 (如果未使能,那么“Hz”输出参数值为“0”)。将 Instructions Wizard 选择的计数器填入“Counter”地址。使用任意的双字地址(格式: REAL)填入到输入输出参数“Hz”上,用来以赫兹为单位显示测量出的频率值。通过 Data Log 功能,可以使“Trigger” 根据频率特性输出一个脉冲信号。(参照 步骤5)
步骤3:
“Frequency”库需要 16 字节的全局变量。因此需通过“文件”菜单>“库记忆分配”...来指定一个地址。
步骤4:
通过“符号表”视图可以得到“Frequency”库的符号地址。 “Time_interval”符号为频率计算以秒来定义可测量的间隔,默认值是 1 秒的间隔时间,可以修改。
步骤5:
在例子项目“Frequency”的网络 3 中,为获取频率时间 Data Log 功能已经集成在一个存储器模块上。通过 “Active”和 “Trigger”信号的与操作,当使能“Frequency”块时,每个频率都会根据“Time_interval”的设置的时间间隔被记录下来。
说明:
Data Log 功能通过 Data Log Wizard 来执行,记录的值可以通过 S7-200 的浏览器读取。
3. 频率转换到速度
运用以下公式获得速度:
n = 60 * f / p
n = 每分的速度^-1
^f = 频率 Hz
p = 电机运转需要的脉冲数
下载:
下载的 "frequency.zip" 包含以下文件:
文件 | 说明 |
---|---|
"frequency.mwl" 库 | - 包含 "Frequency" 块 (参照:创建程序代码,步骤2 ) |
"frequency.mwp" 项目 | - 这个常问问题的例子项目 |
"tspeed01.mwp" 项目 | - 通过循环独立的时间中断信号来完成这个任务(设置范围: 1 到 255 ms) |
Frequency.zip ( 11 KB )
说明:
重要提示:
例子项目是免费软件,任何用户均可免费使用、复制以及转发本程序。程序的作者和拥有者对于该软件的功能和兼容性不承担任何责任。使用该软件可能带的风险由用户自行承担。由于该软件为免费软件,所以不提供任何担保,并且没有义务提供错误纠正和不提供热线支持。