『7x24小时有问必答』

  技术交流社群

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

唯一联系方式

微信同号:15325623428

一、引言

在过程控制系统中,温度、压力、流量、液位等物理量通常通过传感器转换为标准的4-20mA或0-10V信号进入PLC。原始信号需经过量程转换、滤波、报警判断等处理才能用于显示和控制。为了提高程序的复用性、可读性和维护性,借鉴西门子PCS7过程控制系统的成熟经验,在TIA Portal中封装标准化的模拟量输入处理功能块具有重要的工程价值。

二、功能块概述

本文所描述的FB块(建议命名为“AnIn”或“SCALE_AIN”)完全参照PCS7库中CH_AIN等块的设计思想,集成了信号偏移、量程转换、比例调节、一阶滤波以及四限报警等核心功能。该块使用结构化文本(SCL)或梯形图(LAD)编写,通过背景数据块(DB)存储参数,可被反复调用。

三、主要应用场合

过程自动化项目:如化工、制药、电力、水处理、食品饮料等行业,需要连续监测模拟量信号的场合。
信号标准化处理:将来自不同传感器(压力变送器、热电阻、热电偶等)的原始信号统一转换为工程单位。
高噪声环境下的信号平滑:通过可调的一阶滞后滤波器抑制现场干扰,提高控制稳定性。
安全联锁与报警:利用四限报警输出(HH/H/L/LL)触发声光报警或紧急停车逻辑。
遗留系统改造与统一:将采用不同编程风格的老旧项目统一到PCS7标准框架下,便于后续维护。

四、封装意义

提高工程效率:无需每个模拟量通道重复编写标定和报警逻辑,直接调用该块并赋值参数即可。
保证程序质量:经过充分测试的标准块可避免人为编码错误,提高系统可靠性。
便于团队协作:所有工程师遵循同一标准,程序结构清晰,易于交接和审查。
简化维护工作:如需修改滤波算法或报警逻辑,只需更改FB块本体,所有调用实例自动更新。
兼容PCS7生态:方便与西门子PCS7项目中的其它标准块(如电机控制、PID调节)协同工作。

五、引脚参数详解

该FB块的输入/输出参数定义如下:

5.1 输入参数(Input)

参数名数据类型说明
ENBool使能端:为TRUE时执行块功能,通常常接TRUE或由上位机控制。
PV_InReal原始过程值输入。通常来自模拟量输入通道转换后的数值(例如0~27648范围的整数转为Real)。
OffsetReal零点偏移量。用于补偿传感器或变送器的零位误差,该值将被加到PV_In上。
RangeLowReal测量量程下限(工程单位)。对应PV_In最小值(一般为0)时的物理量值,如0℃。
RangeHighReal测量量程上限(工程单位)。对应PV_In最大值(如27648)时的物理量值,如100℃。
RatioReal比例系数。对线性转换后的结果再乘以此系数,可用于特殊曲线的微调,通常设为1.0。
FilterTimeReal一阶滞后滤波时间常数(单位:秒)。值越大滤波效果越强但响应越慢;设为0则无滤波。
AlarmEnableBool报警使能。为TRUE时允许四限报警输出;为FALSE时所有报警输出强制为FALSE。
HH_LimitReal高高报警限值(工程单位)。当最终过程值PV  ≥ 此值时,高高报警输出激活。
H_LimitReal高报警限值。
L_LimitReal低报警限值。
LL_LimitReal低低报警限值。
注意:通常应满足  HH_Limit ≥ H_Limit ≥ L_Limit ≥ LL_Limit,否则报警逻辑可能异常。

5.2 输出参数(Output)

参数名数据类型说明
PVReal处理后的过程值(工程单位)。此为经过偏移、线性转换、比例修正及滤波后的最终值,用于HMI显示、回路控制及报警判断。
PV_RawReal未滤波的过程值(工程单位)。经过偏移、线性转换和比例修正,但未经过滤波处理,可用于诊断原始信号趋势。
HH_ActBool高高报警激活。当AlarmEnable为TRUE且PV ≥ HH_Limit时为TRUE。
H_ActBool高报警激活。
L_ActBool低报警激活。
LL_ActBool低低报警激活。
BadActBool无效/故障标志。当原始输入PV_In超出有效范围(例如<0或>27648)或量程上下限相等时,该位为TRUE,表示信号不可用。

六、典型逻辑流程

该FB块内部通常按以下顺序执行:
零点偏移PV_Offset = PV_In + Offset
量程转换

Scaled = (PV_Offset - RawMin) / (RawMax - RawMin) * (RangeHigh - RangeLow) + RangeLow

其中RawMinRawMax可在背景DB中预先定义(如0.0和27648.0),也可作为静态参数。
比例修正Scaled = Scaled * Ratio
一阶滤波PV = PT1(Scaled, FilterTime),滤波算法为  PV_new = PV_old + (Scaled - PV_old) * (Δt / (Δt + FilterTime))
报警判断:若AlarmEnable为TRUE,则比较PV与各限值,置位对应报警输出。
坏值检测:若PV_In超出允许范围或转换分母为零,则BadAct = TRUE,同时可选地将PV保持为上一有效值或输出指定安全值。

七、工程应用实例

在某个制药车间反应釜温度监测项目中,共有16路PT100热电阻信号。每路信号经过变送器转为4-20mA进入SM331模块。工程师在TIA Portal中创建了"AnIn"功能块,并为之生成了16个背景数据块。通过分别设置RangeLow=0.0RangeHigh=150.0FilterTime=2.0、四限报警值等参数,仅用了不到1小时就完成了所有温度通道的组态。后续添加报警延时功能时,仅需修改FB块内部逻辑,所有实例自动更新,大大缩短了调试周期。
八、FB块封装(源码关注加v免费送)
众号免费学习工控知识、每天分享干货
用最简单的方式教最有用的东西

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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


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