【工控技术】在STEP 7 (TIA Portal) 中,如何实现流量累积功能?
使用库'Totalizer_Lib_TIA_Portal' 中的函数块 'Totalizer' ,可以计算出一个瞬时流量的累积值。
描述
例如,在测量流量或线速度时,可以使用距离或体积作为物理量,使用毫秒,秒,分钟,小时或者天作为测量时间的单位。
图 01
"Totalizer" 功能块必须在循环中断(比如OB30)中调用,表 01 是 "Totalizer" 功能块的输入和输出变量列表
参数 | 变量 | 数据类型 | 描述 |
输入 | Value | Real | 瞬时流量 |
输入 | Interval | Time | 瞬时流量的时间单位 |
输入 | Cycle | Time | 扫描时间(循环中断周期) |
输入 | Reset | Bool | 累积值清零 |
输出 | Total | Real | 累积值输出 |
表 01
在一个循环中
-
输入变量 "Interval" 和"Cycle" 数据类型 Time 被转化为 Real 类型。
-
转化后的值被转移到临时变量 “Interval_real” 和 “Cycle_real”。
-
变量 "VALUE" 的输入值乘以临时变量 "Cycle_real" 的值,然后除以临时变量 “Interval_real”。
-
结果存储在静态变量 “Accum” 的缓冲区。
这样每次循环之后,中间结果值存储在“Accum” 的缓冲区中递增,然后转移到输出变量“Total” 中。如果变量 “Reset” 有“True” 值,则变量 “Total” 输出值被复位为零。
例子:
在图 01 的例子中,“Value” 变量值是 60.0 ,同时变量 “Interval” 的时间值是一分钟。
-
输出变量 "Total" 在1 分钟内从1累加到了60。
-
周期时间 100ms 反映了FB"Totalizer"的执行过程中的扫描时间。
-
当FB在循环中断中被调用时,程序每隔 100ms 处理一次而且程序是独立于 OB1 (主程序)的。
被测量值 "Value" (速度或流量)的计量单位可以是米每秒,立方米每分钟或公里每小时。这时变量 "Interval" 必须输入对应的间隔时间,例如,
-
米每秒: T#1s
-
立方米每分钟: T#1M
-
公里每小时:T#1h
图 02
附件 "48799854_Totalizer_Lib_TIA_Portal" 的库中包含上述的"Totalizer"功能块。功能块中包含SCL程序并附有德文和英文的注释。
复制压缩文件到一个单独的目录,然后双击启动文件解压。此时库会自动解压所有相关的子目录。然后在 STEP 7 (TIA Portal) 中打开这个库,并可以添加到S7-1200/S7-1500的项目中使用。
提示:
只能在STEP 7 (TIA Portal) 中打开或编辑库。