FC105的块名叫“scale”,中文的意思的模拟量输入的便准化。Scale功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限(LO_LIM)和上限(HI_LIM)之间的实型值。将结果写入out,“缩放”指令将按以下公式进行计算:
OUT = [((FLOAT (IN) – K1)/(K2–K1)) ∗ (HI_LIM–LO_LIM)] + LO_LIM
参数 BIPOLAR 的信号状态将决定常数“K1”和“K2”的值。 参数 BIPOLAR 可能有下列信号状态:
BIPOLAR=1,信号状态“1”: 此时参数 IN 的值为双极性且取值范围介于 -27648 和 27648 之间。这种情况下,常数“K1”的值为“-27648.0”,“K2”的值为“+27648.0”。
BIPOLAR=0,信号状态“0”: 此时参数 IN 的值为单极性且取值范围介于 0 和 27648 之间。这种情况下,常数“K1”的值为“0.0”,“K2”的值为“+27648.0”。
如果参数 IN 的值大于常数“K2”的值,则将指令的结果设置为上限值 (HI_LIM) 并输出一个错误。
如果参数 IN 的值小于常数“K1”的值,则将该指令的结果设置为下限值 (LO_LIM) 并输出一个错误。
如果指定的下限值大于上限值 (LO_LIM >HI_LIM),则结果将对输入值进行反向缩放。
RET_VAL 参数
下表列出了 RET_VAL 参数值的含义:
W#16#0000 | 无错误 |
W#16#0008 | 参数 IN 的值大于常数“K2”的值或小于常数“K1”的值 |
W#16#8xyy | 有关错误的更多信息,请参见“另请参见”。 |
参数 | 声明 | 数据类型 | 存储区 | 说明 |
EN | Input | Bool | I、Q、M、D、L | 使能输入 |
ENO | Output | Bool | I、Q、M、D、L | 使能输出 |
IN | Input | Int | I、Q、M、D、L、P或常数 | 待缩放的输入值 |
HI_LIM | Input | Real | I、Q、M、D、L、P或常数 | 上限 |
LO_LIM | Input | Real | I、Q、M、D、L、P或常数 | 下限 |
BIPOLAR | Input | Bool | I、Q、M、D、L或常数 | 1:双极性;0:单极性 |
OUT | Output | Real | I、Q、M、D、L、P | 指令的结果 |
RET_VAL | output | Word | I、Q、M、D、L、P | 错误信息 |
接下来以实例进行讲解:
测距传感器,测距范围100mm到1000mm,电流模拟量输出4到20mA,输入信号PIW264。
首先采用MOVE指令,将PIW264字符变量转换成整型变量DB100.DBW218
Scale参数:
IN=DB100.DBW218(整型变量)
HI_LIM=1000
LO_LIM=100
RET_VAL=DB100.DBW224(字符型变量)
OUT=DB100.DBD220(实数型变量)
BIPOLAR=0,因此加以一个开点即可。