寄存器 | 参数含义 | 示例值 | 说明 |
D300 | 比例带(P) | K500 | 即50.0%,越小响应越快 |
D301 | 积分时间(Ti) | K300 | 单位:×100ms,即30秒 |
D302 | 微分时间(Td) | K0 | 单位:×100ms,加热系统一般先不加 |
D303 | 采样周期(Ts) | K500 | 单位:×10ms,即5秒(温控推荐200~500ms) |
D304 | 控制动作方向 | K1 | 0=正动作(冷却),1=逆动作(加热) |
D305 | 输入滤波系数 | K50 | 0~99%,值越大滤波越强 |
D306 | 微分增益 | K100 | 0~100% |
D307 | 输出上下限标志 | K3 | b0=上限有效,b1=下限有效,K3=都启用 |
D308 | 输出上限值 | K1000 | 1000=100%满功率 |
D309 | 输出下限值 | K0 | 0=最低输出0% |
完整程序示例:
关键点解释:
为什么加热选"逆动作"? 因为温度低于目标时要加大输出——这和"正动作"(温度高时加大输出,用于冷却)正好相反。选错了方向,系统越控越乱。
为什么先不加微分(Td=0)? 温度信号本身有噪声和滞后,微分会放大噪声导致输出抖动。先用PI控制稳定下来,确实需要再微调加Td。
为什么设输出上限80%? 防止PID满功率输出导致超温冲击。80%是一个安全上限,实际可根据加热功率余量调整。
PID算出了输出值D400(0~1000),怎么驱动加热器?两种方式:
原理:把PID输出值按比例转化为一个周期内的通电时间。比如输出80%意味着在一个周期内80%时间通电、20%时间断开。
优点: 成本最低,FX5U晶体管输出直接驱动SSR,不需要DA模块。
缺点: 输出有阶梯效应,控温精度不如模拟量。
方式二:DA模块模拟量输出(FX5U-4DA-ADP)
原理:把PID输出值转为0~10V或4~20mA模拟信号,驱动调功器/可控硅实现连续功率调节。
优点: 输出平滑连续,控温精度高。
缺点: 需要额外买DA模块,成本增加。
触摸屏不是摆着好看的,是操作员的眼睛和手。设计时至少需要三个画面:
必须实时显示的核心信息:
PV(过程值) :当前实际温度,大字号显示
SV(设定值) :目标温度
MV(操作量) :当前输出功率百分比
运行状态:自动/手动/停止/报警
趋势曲线:最近30~60分钟的温度走势
允许修改的参数:
PID参数(P、Ti、Td)
目标温度SV
报警上下限
输出限幅值
关键: 这个画面必须加密码保护,防止操作员误改PID参数导致系统失控。
分级报警机制:
报警等级 | 触发条件 | 响应动作 |
一级(提示) | PV > SV + 5℃ | 黄色指示灯闪烁 |
二级(警告) | PV > SV + 15℃ 或 传感器断线 | 红色报警 + 蜂鸣器 + 切断加热输出 |
三级(故障) | PV > 250℃(超温极限) | 锁定输出 + 上报上位系统 |
传感器断线检测非常重要——如果热电偶/PT100断线,AD模块读到的值会突变到极值。程序中必须检测:
PID参数整定是最大的"玄学",但其实有章可循。
如果用的是FX5-4LC温控模块,直接触发AT功能,模块会自动施加阶跃扰动,根据系统响应曲线算出最优P、Ti、Td参数。
用PIDCONT指令的话,需要手动实现:设定SV让系统产生阶跃响应,记录振荡周期和超调量,反算参数。
步骤:
先只调P:把Ti设到最大(相当于去掉积分),Td=0,逐渐减小P(增大比例增益),直到温度出现等幅振荡
再加I:把P回退10~20%,逐步减小Ti(增强积分),消除稳态误差
最后考虑D:如果超调明显,适当加Td;如果信号噪声大,不加D
温度系统的经验初值(供参考):
被控对象 | P(比例带) | Ti(积分时间) | Td(微分时间) |
小功率恒温箱(<1kW) | 20~30% | 10~30s | 0~5s |
中功率加热炉(1~5kW) | 30~50% | 30~120s | 0~10s |
大功率加热系统(>5kW) | 50~80% | 60~300s | 0~15s |
恒温水槽 | 10~20% | 5~20s | 0~3s |
现象 | 原因 | 对策 |
温度一直升不到目标值 | 输出上限设太低 / P太大 | 提高输出上限 / 减小P |
超调严重,温度冲过头 | P太大 / Ti太小 / 没加滤波 | 增大P / 增大Ti / 增大滤波系数 |
温度在目标值附近反复振荡 | Ti太小(积分过强) | 增大Ti |
温度稳定但有1~3℃静差 | 积分作用不足 | 减小Ti(增强积分) |
输出值频繁跳动 | 温度信号噪声大 / 采样周期太短 | 增大滤波系数 / 加长采样周期 |
PT100用2线制接长导线——引线电阻每米约0.4Ω,10米线=4Ω≈10℃误差,必须用3线制
PID方向设反——加热选了正动作,温度越高输出越大,直接失控烧设备
没设输出上限——上电瞬间PID满功率输出,加热器全开冲击电网
采样周期设太短——温度变化很慢,100ms采样一次纯属浪费CPU,推荐200~500ms
屏蔽线没接地——模拟量信号线必须用屏蔽双绞线,屏蔽层单端接地,否则干扰信号能让温度跳±5℃
忘了传感器断线保护——热电偶烧断了PLC不知道,AD读到极值,加热器一直全功率输出
积分饱和——PID输出已到上限但温度还没到,积分项持续累积,等温度到了输出降不下来,超调巨大。解决:启用积分分离或限幅先于积分
DA模块参数没配"允许输出" ——GX Works3里D/A转换允许必须设为"允许",否则写了数据也没输出
SSR选型没留余量——加热器启动瞬间电流是额定的5~10倍,SSR额定电流至少选加热器的3倍
没做分级报警——只有超温报警没有低温和断线报警,设备故障了才发现
项目 | 推荐值 / 选型 |
PLC主机 | FX5U-32MT/ES(晶体管输出型) |
温度采集 | FX5-4AD-PT-ADP(PT100直连)或 FX5-4AD + 变送器 |
输出控制 | 低预算:Y点PWM+SSR;高精度:FX5-4DA-ADP+调功器 |
PID指令 | PIDCONT(FX5U内置) |
采样周期 | 200~500ms(温度对象响应慢) |
加热动作方向 | 逆动作(K1) |
SSR额定电流 | ≥ 加热器额定电流 × 3 |
传感器接线 | PT100用3线制,热电偶用补偿导线 |
屏蔽线接地 | 单端接地(柜体端),信号端悬空 |
报警必须项 | 超温、低温、传感器断线,三级分级 |
总结一句话: 加热控制的核心不是PID调得多精,而是信号链路配对了没有、保护逻辑做全了没有。链路对了、保护全了,PID参数差不多就行;链路错了、保护没做,PID调出花来也白搭。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!