抖音粉丝群1
『7x24小时有问必答』

信捷PLC模拟量输入FB块封装,主要应用于需要处理传感器信号(如温度、压力、流量等)的工业自动化场景。

  技术交流社群

工控路上独行太难,懂的人一起交流才高效!有需要交流学习的可以扫码加微信,备注技术交流群,一起探讨 PLC 编程、模拟量调试、量程换算、故障排查等工控干货,资源共享、共同进步!

唯一联系方式

微信同号:15325623428

主要应用场合

多通道信号采集系统:在大型控制系统中,当需要采集数十甚至上百个模拟量信号时,通过封装统一的AI功能块,可以实现对所有通道的标准化处理,避免重复编程。标准化项目开发:对于需要批量复制的设备或系统(如水处理设备、空调机组、包装机械等),使用封装好的AI功能块可以实现“一次开发,多次复用”,极大提高开发效率。关键过程控制:在化工、制药、食品饮料等行业,对模拟量信号的处理要求高精度和高稳定性。封装功能块可确保所有通道使用相同的滤波、标定、诊断逻辑,避免人为错误。需要高级诊断与状态监控的系统:封装的功能块可以集成断线检测、信号超限报警等诊断功能,便于系统维护和故障排查。

封装的意义

提高编程效率:通过预先定义好的功能块,工程师可以直接调用这些模块化的代码,减少从头编写控制逻辑的时间,显著提升开发速度。增强代码可维护性:统一的封装使得代码结构更清晰、更易于理解和修改。当需要调整某个功能时,只需修改功能块本身,所有调用该块的地方都会自动更新。保证处理一致性:确保所有模拟量信号都经过相同的处理流程(如标定、滤波),从而保证了整个系统数据的一致性和可靠性。降低出错风险:避免了在每个程序中重复编写相同的代码,减少了因人为疏忽导致的编程错误。
这其实是信捷PLC里专门用来处理模拟量标定的功能块(AiScale),看引脚名称就能明白,它的核心任务就是把采集到的原始电信号转换成有物理意义的工程值。下面我把每个引脚的定义、数据类型以及实际用法给你拆解一下:

输入引脚 (Inputs)

这些引脚位于功能块左侧,用于提供数据和控制参数。

AnalogInput (模拟量输入)

含义:这是需要被处理的原始模拟量数值。通常直接连接PLC的模拟量输入寄存器地址(如  AIW0  或  D  寄存器中存储的AD转换值)。数据类型:整型。作用:提供待转换的原始数据(例如:0-27648 或 0-32000 的数值)。

Offset (偏置/偏移量)

含义:输出结果的一个基础偏移值。数据类型:通常为浮点型或整型。作用:在最终计算结果上加上或减去的一个固定值。如果不需要偏移,通常设为 0。

Ish (Input High - 输入量程上限)

含义:模拟量输入信号的最大原始值。数据类型:整型。作用:定义物理传感器的最大输出对应的原始AD值。例如,如果传感器输出 4-20mA,对应 PLC 的 6400-32000,那么  Ish  可能设为 32000。

Isl (Input Low - 输入量程下限)

含义:模拟量输入信号的最小原始值。数据类型:整型。作用:定义物理传感器的最小输出对应的原始AD值。例如,对应 4mA 信号,Isl  可能设为 6400。

Osh (Output High - 输出工程量上限)

含义:用户希望转换后的工程量最大值。数据类型:浮点型或整型。作用:对应物理量的满量程值。例如,如果是压力传感器 0-1.6MPa,则  Osh  设为 1.6 或 1600(取决于精度需求)。

Osl (Output Low - 输出工程量下限)

含义:用户希望转换后的工程量最小值。数据类型:浮点型或整型。作用:对应物理量的零点值。例如,压力传感器的零点,Osl  设为 0。

Ratio (比率/比例系数)

含义:这是一个额外的增益调节系数。数据类型:浮点型。作用:用于微调输出结果。如果设为 1.0,则无影响;如果设为 0.5,输出减半。在某些简单的封装中,这个引脚可能用于直接乘以最终结果,或者作为线性转换公式中的斜率  <mrow><mi>k</mi></mrow>k  。

输出引脚 (Outputs)

这些引脚位于功能块右侧,用于输出处理结果和状态。

AnalogOutput (模拟量输出/工程量)

含义:经过线性转换后的最终工程值。数据类型:通常为浮点型。作用:这是给上位机、触摸屏或PID控制回路使用的实际物理值(如:当前温度为 25.5℃,当前压力为 0.8MPa)。

Warning (报警/警告)

<li>含义:状态指示信号。数据类型:布尔型。作用:当输入信号超出设定范围(如断线、超量程)或内部计算出错时,该位被置为  ON,用于触发系统报警。

FB块封装

</li>
1.png
2.png
// 0~16383   模拟量输入的范围  
// 零点补偿  
Data[1] := Analognput + Offset;
// 判断输入信号是否在范围内    当输入信号小于2ma 或者大于22ma时候 报警告
Warning:= (Data[1] <= -2458) OR (Data[1]>= 18022);
// 模拟量输入等比换算  
Data[0] := ((Osh - OsL)* (Data[1] -Isl )/(Ish - Isl))+Isl;
// 模拟量最终输出值
AnalogOutput := Data[0] * Ratio;
众号免费学习工控知识、每天分享干货
用最简单的方式教最有用的东西

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码