在Step7编程中,FC105是一个用于处理模拟量输入的功能块,常用于将1~5V、4~20MA等常规信号转换为CPU可以处理的实数。以下是使用FC105的一般步骤和注意事项:
打开FC105库
在Step7中,打开`Libraries\standard library\Ti-S7 Converting Blocks\fc105`,将其调入OB1中。
定义管脚地址
IN:模拟量模块的输入通道地址,在硬件组态时分配。
HI_LIM:现场信号的最大量程值。
LO_LIM:现场信号的最小量程值。
BIPOLAR:极性设置,如果现场信号为+10V~-10V(有极性信号),则设置为1;如果为4MA~20MA(无极性信号),则设置为0。
OUT:现场信号值(带工程量单位),信号类型是实数,所以要用MD200来存放。
RET_VAL:FC105功能块的故障字,可存放在一个字里面,例如MW50。
信号处理
模拟量转换公式:`OUT = [((FLOAT (IN) - K1)/(K2 - K1)) * (HI_LIM - LO_LIM)] + LO_LIM`。
极性处理:
如果信号为双极性(如±10V),则BIPOLAR设置为1,此时K1=-27648,K2=27648。
如果信号为单极性(如0~20mA),则BIPOLAR设置为0,此时K1=0,K2=27648。
错误处理
如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。
如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。
ENO的信号状态将设置为0,RET_VAL等于W160008。
实例
假设模拟量模块所接传感器为0-20mA类型,其测量对象为温度。
当温度为0℃时电流为0 mA,对应模拟量输入值为0;当温度为100℃时电流为20 mA,对应模拟量输入值为27648。
如果当前电流值为10 mA,则模拟量模块得到的输入值为13824。
调用FC105,将模拟量输入模块的数值赋给参数IN,工程量上限值给定为100.0,下限值给定为0.0,则计算得到的实际温度值将写入OUT。
通过以上步骤和注意事项,可以在Step7中成功使用FC105进行模拟量输入的处理和转换。