涡轮流量计是一种速度式流量测量仪表,其工作原理基于流体流过传感器时对涡轮叶片的冲击,导致涡轮旋转。涡轮的转速与流体的流速成正比,通过测量涡轮的转速可以间接得到流体的流量。
在工业自动化控制系统中,可编程逻辑控制器(PLC)被**应用于各种过程控制,包括流量控制。梯形图作为PLC编程的一种图形化语言,以其直观易懂的特点,成为工程师们进行PLC编程的**。
本文将详细介绍如何使用梯形图实现涡轮流量的计算,并结合实际案例进行说明。
涡轮流量计的主要组成部分包括:涡轮、传感器、信号处理单元等。当流体流经流量计时,对涡轮叶片产生冲击力,使涡轮旋转。叶片上的磁钢经过传感器线圈时,产生感应电压脉冲信号。信号处理单元对脉冲信号进行整形、放大、滤波等处理,得到与流量成正比的脉冲频率或模拟信号输出。
涡轮流量计的流量计算公式如下:
Q = K * f
其中:
Q:流量 K:仪表系数,由流量计的口径、叶轮的几何尺寸以及流体的性质等因素决定 f:涡轮流量计输出的脉冲频率以下是使用梯形图实现涡轮流量计算的步骤:
首先,需要将涡轮流量计输出的脉冲信号接入PLC的输入模块。可以通过高速计数器模块或普通数字输入模块来采集脉冲信号。
(1) 高速计数器如果使用高速计数器模块,可以设置计数器的计数十进制,并将涡轮流量计的脉冲信号连接至计数器的输入端。梯形图程序中可以使用计数器指令读取当前的计数值。例如,使用西门子S7-1200 PLC,可以使用"HSC_COUNT"指令读取高速计数器的计数值。
(2) 普通数字输入如果使用普通数字输入模块,需要编写程序对脉冲信号进行计数。可以使用上升沿或下降沿触发的方式进行计数。例如,以下程序段展示了如何使用上升沿触发的方式对脉冲信号进行计数:
NETWORK X0 |---[ ]---(P)--| | | |---[/]---( )---| | M0 (S) | C0 (CU)其中,X0为连接脉冲信号的输入点,M0为中间变量,C0为计数器。
获取到脉冲信号的计数值后,可以根据流量计算公式计算出流量。可以使用PLC的数学运算指令进行计算。例如,使用西门子S7-1200 PLC,可以使用"MUL_R"指令进行乘法运算。
例如,假设仪表系数K存储在数据块DB1.DBD0中,当前计数值存储在高速计数器HC0中,则可以使用以下程序段计算流量:
NETWORK HSC_COUNT HC0, "temp" MUL_R "temp", DB1.DBD0, "FlowRate"其中,"temp"为临时变量,"FlowRate"为存储计算结果的变量。
计算出流量后,可以根据需要进行数据处理,例如:单位转换、数据滤波、报警设置等。
(1) 单位转换如果需要将流量转换为其他单位,可以使用PLC的数学运算指令进行转换。例如,将m3/h转换为L/min,可以使用以下公式:
Q (L/min) = Q (m3/h) * 1000 / 60
(2) 数据滤波为了减少信号噪声对测量结果的影响,可以使用滤波算法对流量数据进行滤波处理。常用的滤波算法包括:平均值滤波、中值滤波、滑动平均滤波等。例如,以下程序段展示了如何使用滑动平均滤波算法对流量数据进行滤波:
NETWORK // 将当前流量值存储到数组的**一个元素 "FlowRateArray"[9] := "FlowRate"; // 计算数组中所有元素的平均值 "FlowRate_Filtered" := 0; FOR #i := 0 TO 9 DO "FlowRate_Filtered" := "FlowRate_Filtered" + "FlowRateArray"[#i]; END_FOR; "FlowRate_Filtered" := "FlowRate_Filtered" / 10; // 将数组中的数据向前移动一位 FOR #i := 0 TO 8 DO "FlowRateArray"[#i] := "FlowRateArray"[#i+1]; END_FOR; (3) 报警设置可以根据需要设置流量上下限报警。当流量超出预设范围时,PLC可以输出报警信号,提醒操作人员及时处理。例如,以下程序段展示了如何设置流量上限报警:
NETWORK // 比较流量值与上限值 "FlowRate" > "FlowRate_HighLimit" |---( )---| | "Alarm_High" (S)其中,"FlowRate_HighLimit"为预设的流量上限值,"Alarm_High"为流量上限报警信号。
**,可以将计算得到的流量值显示在人机界面(HMI)上,或者通过通讯协议将数据传输到其他设备或系统。
以下是一个使用西门子S7-1200 PLC和梯形图实现涡轮流量计算的案例:
**需求:**某工厂需要使用涡轮流量计测量管道中水的流量,并将流量值显示在HMI上。流量计的仪表系数为0.1 m3/pulse,流量单位为m3/h。当流量超过10 m3/h时,PLC输出报警信号。
**硬件配置:** PLC:西门子S7-1200 CPU 1214C 模拟量输入模块:SM 1231 数字量输出模块:SM 1221 HMI:TP700 Comfort **软件配置:** 编程软件:TIA Portal V16 编程语言:梯形图 (LAD) **程序实现:** 1. **变量定义**: - "FlowSensor":模拟量输入,连接涡轮流量计的模拟量输出信号,数据类型为REAL。 - "FlowRate":流量值,数据类型为REAL。 - "FlowRate_HighLimit":流量上限值,预设为10 m3/h,数据类型为REAL。 - "Alarm_High":流量上限报警信号,数据类型为BOOL。 2. **程序代码**: ``` // 读取模拟量输入信号 "FlowSensor" := SCALE_X ("FlowSensor_Raw", 0, 27648, 0, 10); // 计算流量值 "FlowRate" := "FlowSensor" * 0.1 * 3600; // 判断流量是否超过上限值 "FlowRate" > "FlowRate_HighLimit" |---( )---| | "Alarm_High" (S) // 将流量值和报警信号发送到HMI // ... ``` 3. **HMI配置**: - 创建一个数值显示控件,用于显示流量值 "FlowRate"。 - 创建一个指示灯控件,用于显示流量上限报警信号 "Alarm_High"。 **程序说明**: - 首先使用`SCALE_X`指令将模拟量输入信号 "FlowSensor_Raw" 转换为实际的流量值 "FlowSensor"。