在西门子S7-300 PLC编程中,使用FC105功能块处理模拟量输入的步骤如下:
打开库
在编程界面下,打开“Libraries” -> “Standard Library” -> “Ti-S7 Converting Blocks”,在这里可以找到FC105功能块。
调入OB1
将FC105功能块从库中调入OB1中,以便在程序中调用。
定义管脚
IN:模拟量模块的输入通道地址,在硬件组态时分配。
HI_LIM:现场信号的最大量程值。
LO_LIM:现场信号的最小量程值。
BIPOLAR:极性设置,如果现场信号为+10V~-10V(有极性信号),则设置为1;如果现场信号为4MA~20MA(无极性信号),则设置为0。
OUT:现场信号值(带工程量单位),信号类型是实数,所以要用MD200来存放。
RET_VAL:FC105功能块的故障字,可存放在一个字里面。
配置SCALE功能
FC105的SCALE功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。
常数K1和K2根据输入值是BIPOLAR还是UNIPOLAR设置:
BIPOLAR:K1 = -27648.0,K2 = +27648.0。
UNIPOLAR:K1 = 0.0,K2 = +27648.0。
如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。
示例程序
```西门子
PROGRAM FC105_Example
VAR
IN_Value: INT;
HI_Limit: INT := 100;
LO_Limit: INT := 0;
Bipolar: BOOL := FALSE;
OUT_Value: REAL;
RET_Val: WORD;
END_VAR
IF Bipolar THEN
K1 := -27648.0;
K2 := 27648.0;
ELSE
K1 := 0.0;
K2 := 27648.0;
END_IF;
OUT_Value := SCALE(IN_Value, K1, K2, LO_Limit, HI_Limit);
// 输出结果
WRITE: OUT_Value;
END_PROGRAM
```
在这个示例中,`IN_Value` 是从模拟量模块读取的整数值,`HI_Limit` 和 `LO_Limit` 分别定义了信号的最大和最小量程值,`BIPOLAR` 设置了信号的极性。`OUT_Value` 是经过FC105转换后的工程量值,最后通过 `WRITE` 语句输出。
通过以上步骤,你可以在西门子S7-300 PLC中成功编程使用FC105功能块处理模拟量输入。