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),则结果将对输入值进行反向缩放。
参数 |
声明 |
数据类型 |
存储区 |
说明 |
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 |
错误信息 |
RET_VAL 参数
下表列出了 RET_VAL 参数值的含义:
W#16#0000 |
无错误 |
W#16#0008 |
参数 IN 的值大于常数“K2”的值或小于常数“K1”的值 |
W#16#8xyy |
有关错误的更多信息,请参见“另请参见”。 |
接下来以实例进行讲解:
测距传感器,测距范围100mm到1000mm,电流模拟量输出4到20mA,输入信号PIW264。
首先采用MOVE指令,将PIW264字符变量转换成整型变量DB100.DBW218,接下来采用scale指令
Scale参数:
IN=DB100.DBW218(整型变量)
HI_LIM=1000
LO_LIM=100
RET_VAL=DB100.DBW224(字符型变量)
OUT=DB100.DBD220(实数型变量)
BIPOLAR=0,因此加以一个开点即可。