博图 FB 封装模拟量换算两种实现方式NORM_SCALE / 一次函数 ykxb可直接复制大家好本篇延续模拟量科普内容手把手把模拟量量程换算封装成独立 FB 功能块一次封装、反复调用多个压力 / 温度 / 液位传感器不用重复写代码极大精简程序。提供两套等效写法一套调用博图标准指令一套纯数学公式手写新手都能看懂完整代码直接自取。适用场景标准线性模拟量传感器PLC 原始 IW 数值转实际物理工程量支持额外零点补偿偏移量。西门子 S7-1200/1500 通用。方法 1标准库指令 NORM_X SCALE_X 缩放官方推荐原理先把原始整数归一化到 0.0~1.0再映射到自定义物理量程。 //1、原始IW数值归一化 0.0~1.0 分辨率比例 : NORM_X( MIN : #IN_分辨率MIN, VALUE : #IN_IW, MAX : #IN_分辨率MAX); //2、归一化数值映射到实际物理量程 #测量值 : SCALE_X( MIN : #IN_量程MIN, VALUE : #分辨率比例, MAX : #IN_量程MAX); //3、叠加零点补偿值输出最终工程量 #OUT_输出值 : #测量值 #IN_补偿值;方法 2手写一次函数 ykxb 纯数学换算无依赖指令工控模拟量换算本质就是线性插值不用调用系统指令手动推导系数逻辑透明方便新手理解换算底层逻辑。 //y最终物理量xPLC 采集的 IW 原始数值 //计算斜率k #k:(#IN_量程MAX - #IN_量程MIN) / (#IN_分辨率MAX - #IN_分辨率MIN); // 计算截距b #b : #IN_量程MIN - #k * #IN_分辨率MIN; // 线性换算原始数值 #测量值 : #k * #IN_IW #b; // 叠加补偿偏移 #OUT_输出值 : #测量值 #IN_补偿值;关键说明 使用贴士两套代码运算结果完全一致任选其一即可标准 4-20mA /0-10V信号固定西门子模拟量模块IN_分辨率MIN0、IN_分辨率MAX27648补偿值用于现场传感器零点漂移修正无偏移时赋值 0 即可封装成 FB 块后多个模拟量通道多次调用程序结构整洁便于后期维护、项目交接。实操举例压力传感器量程 0~1.0MPa4mA 对应 020mA 对应 27648零点补偿 0.02MPa。PLC 读取 IW 数值 13824代入后最终输出 0.52MPa。小tipsAO 模拟量反向输出量程换算这套 FB 只需要调换量程 MIN、MAX 数值就能复用。后续会继续分享 FB 多重实例化、模拟量软件滤波配套写法需要的朋友可以收藏关注 ᕙ(▿´)ᕗ(◕ᴗ◕✿) 深耕工控日日精进
博图 FB 封装模拟量换算
博图 FB 封装模拟量换算两种实现方式NORM_SCALE / 一次函数 ykxb可直接复制大家好本篇延续模拟量科普内容手把手把模拟量量程换算封装成独立 FB 功能块一次封装、反复调用多个压力 / 温度 / 液位传感器不用重复写代码极大精简程序。提供两套等效写法一套调用博图标准指令一套纯数学公式手写新手都能看懂完整代码直接自取。适用场景标准线性模拟量传感器PLC 原始 IW 数值转实际物理工程量支持额外零点补偿偏移量。西门子 S7-1200/1500 通用。方法 1标准库指令 NORM_X SCALE_X 缩放官方推荐原理先把原始整数归一化到 0.0~1.0再映射到自定义物理量程。 //1、原始IW数值归一化 0.0~1.0 分辨率比例 : NORM_X( MIN : #IN_分辨率MIN, VALUE : #IN_IW, MAX : #IN_分辨率MAX); //2、归一化数值映射到实际物理量程 #测量值 : SCALE_X( MIN : #IN_量程MIN, VALUE : #分辨率比例, MAX : #IN_量程MAX); //3、叠加零点补偿值输出最终工程量 #OUT_输出值 : #测量值 #IN_补偿值;方法 2手写一次函数 ykxb 纯数学换算无依赖指令工控模拟量换算本质就是线性插值不用调用系统指令手动推导系数逻辑透明方便新手理解换算底层逻辑。 //y最终物理量xPLC 采集的 IW 原始数值 //计算斜率k #k:(#IN_量程MAX - #IN_量程MIN) / (#IN_分辨率MAX - #IN_分辨率MIN); // 计算截距b #b : #IN_量程MIN - #k * #IN_分辨率MIN; // 线性换算原始数值 #测量值 : #k * #IN_IW #b; // 叠加补偿偏移 #OUT_输出值 : #测量值 #IN_补偿值;关键说明 使用贴士两套代码运算结果完全一致任选其一即可标准 4-20mA /0-10V信号固定西门子模拟量模块IN_分辨率MIN0、IN_分辨率MAX27648补偿值用于现场传感器零点漂移修正无偏移时赋值 0 即可封装成 FB 块后多个模拟量通道多次调用程序结构整洁便于后期维护、项目交接。实操举例压力传感器量程 0~1.0MPa4mA 对应 020mA 对应 27648零点补偿 0.02MPa。PLC 读取 IW 数值 13824代入后最终输出 0.52MPa。小tipsAO 模拟量反向输出量程换算这套 FB 只需要调换量程 MIN、MAX 数值就能复用。后续会继续分享 FB 多重实例化、模拟量软件滤波配套写法需要的朋友可以收藏关注 ᕙ(▿´)ᕗ(◕ᴗ◕✿) 深耕工控日日精进