在step7中实现模拟量数值与工程量数值之间的转换
参数解释:
1.用户可以使用本例子所提供的 FC105 将模拟量输入模板的整数数值转换为工程量数值。对于 FC105 的输入/输出参数解释如下:
参数 | 类型 | 数据类型 | 存储区 | 描述 |
EN | 输入 | BOOL | I, Q, M, D, L | 信号状态 “1”,激活该块。 |
ENO | 输出 | BOOL | I, Q, M, D, L | 块执行无错误时,输出信号状态 “1”。 |
IN | 输入 | INT | I, Q, M, D, L,常数 | 需转化的整数输入值 |
HI_LIM | 输入 | REAL | I, Q, M, D, L,常数 | 物理单位的高限值 |
LO_LIM | 输入 | REAL | I, Q, M, D, L,常数 | 物理单位的低限值 |
BIPOLAR | 输入 | BOOL | I, Q, M, D, L,常数 | 信号状态“1” 表示双极性输入值。 信号状态“0” 表示单极性输入值 |
OUT | 输出 | REAL | I, Q, M, D, L | 转化后的工程量结果 |
RET_VAL | 输出 | WORD | Q, M, D, L | 当操作没有错误,输出值 W#16#0000。 |
FC105 使用参数
参数转化关系:
OUT = [((FLOAT (IN) – K1)/ (K2–K1)) * (HI_LIM–LO_LIM)] + LO_LIM
注意:
如果用户使用的输入/输出类型为双极性(如±10V,±5V 等),BIPOLAR 参数应当给定为 TRUE,此时 K1=-27648,K2=27648,否则 K1=0,K2=27648。
例如:假设模拟量模块所接传感器为 0-20mA 类型,其测量对象为温度,当温度为 0℃时电流为 0 mA,当温度为 100℃时电流为 20 mA。此时模拟量输入模块得到的对应数值 0 mA 对应为 0,20 mA 对应为 27648。如果当前电流值为 10 mA,则模拟量模块得到的输入值为13824,如果用户希望在 CPU 中得到一个最终的实际温度值,则可以调用 FC105,将模拟量输入模块的数值赋给参数 IN,工程量上限值给定为 100.0,下限值给定为 0.0,即可在输出参数 OUT 得到实际温度值 50℃。
2.用户可以使用本例子所提供的 FC106 将工程量值转换为模拟量输出模板所需要的数值。对于FC106的输入/输出参数解释如下:
参数 | 类型 | 数据类型 | 存储区 | 描述 |
EN | 输入 | BOOL | I, Q, M, D, L | 信号状态 “1”,激活该块。 |
ENO | 输出 | BOOL | I, Q, M, D, L | 块执行无错误时,输出信号状态 “1”。 |
IN | 输入 | INT | I, Q, M, D, L,常数 | 工程量给定值 |
HI_LIM | 输入 | REAL | I, Q, M, D, L,常数 | 物理单位的高限值 |
LO_LIM | 输入 | REAL | I, Q, M, D, L,常数 | 物理单位的低限值 |
BIPOLAR | 输入 | BOOL | I, Q, M, D, L,常数 | 信号状态“1” 表示双极性输入值。 信号状态“0” 表示单极性输入值 |
OUT | 输出 | REAL | I, Q, M, D, L | 转化后的工程量结果 |
RET_VAL | 输出 | WORD | Q, M, D, L | 当操作没有错误,输出值 W#16#0000。 |
FC1056使用参数
参数转化关系:
OUT = [ ((IN–LO_LIM)/(HI_LIM–LO_LIM)) * (K2–K1) ] + K1
注意:如果用户使用的输入/输出类型为双极性(如±10V 等),BIPOLAR 参数应当给定为TRUE,此时 K1=-27648,K2=27648,否则 K1=0,K2=27648。
例如:假设模拟量输出模块输出设置为 0-20mA 类型,其所连接的执行器为调节阀。当电流为 0 mA 时阀门开度为 0%,当电流为 20 mA 时阀门开度为 100%。如果用户希望阀门开度为 50%,则可以调用 FC106,将开度给定值赋给参数 IN,工程量上限值给定为 100.0,下限值给定为 0.0,将模拟量输出模块的地址赋给参数 OUT,此时 OUT 数值为 13824,即可使模拟量输出模块输出电流值为 10 mA,即阀门开度为 50%。