在Step7中编写流量显示程序,可以使用FC105功能块对差压变送器测得的流量进行转换。以下是一个示例程序:
硬件组态
确保差压变送器已正确连接到PLC的模拟量输入模块。
在硬件组态中,分配模拟量输入通道地址(例如,MWXX)给差压变送器。
程序编写
在Step7中创建一个新的程序块(例如,OB1)。
在程序块中编写以下代码:
```pascal
PROGRAM FlowDisplay
VAR
// 定义输入和输出变量
MWXX: REAL; // 模拟量输入通道地址
MD20: REAL; // 转换后的流量值
HI_LIM, LO_LIM, BIPOLAR: BOOL; // 流量限制和极性设置
BEGIN
// 读取模拟量输入
MWXX := AMT_IN; // 假设AMT_IN是读取模拟量输入的变量
// 设置流量限制和极性
HI_LIM := TRUE; // 转换上限为100.0
LO_LIM := FALSE; // 转换下限为0.0
BIPOLAR := TRUE; // 双极性信号
// 调用FC105功能块进行流量转换
CALL FC105
IN := MWXX
HI_LIM := HI_LIM
LO_LIM := LO_LIM
BIPOLAR := BIPOLAR
RET_VAL := MW10
OUT := MD20;
// 显示转换后的流量值
IF MD20 >= 0 THEN
disp "Flow: " + MD20.ToString() + " " + "m3/h";
ELSE
disp "Flow: " + MD20.ToString() + " " + "m3/h" + " (Negative value)";
END_IF;
END_VAR
```
代码解释:
变量定义
`MWXX`:模拟量输入通道地址。
`MD20`:转换后的流量值。
`HI_LIM`、`LO_LIM`、`BIPOLAR`:流量限制和极性设置。
读取模拟量输入
`MWXX := AMT_IN;`:假设`AMT_IN`是读取模拟量输入的变量。
设置流量限制和极性
`HI_LIM := TRUE;`:转换上限为100.0。
`LO_LIM := FALSE;`:转换下限为0.0。
`BIPOLAR := TRUE;`:双极性信号。
调用FC105功能块
`CALL FC105`:调用FC105功能块进行流量转换。
`IN := MWXX`:输入通道地址。
`HI_LIM := HI_LIM`:转换上限。
`LO_LIM := LO_LIM`:转换下限。
`BIPOLAR := BIPOLAR`:极性设置。
`RET_VAL := MW10`:返回值存储在MW10中。
`OUT := MD20`:转换后的值存储在MD20中。
显示转换后的流量值
使用`disp`语句显示转换后的流量值。
建议:
确保在硬件组态中正确配置了模拟量输入通道地址。
根据实际流量范围和信号极性调整流量限制和极性设置。
在实际应用中,可能需要根据具体需求对程序进行进一步的优化和调试。