gk-auto 发表于 2022-3-6 11:58:29

如何使用S7-1200的PID功能(图文)

如何使用S7-1200的PID功能客户问题1:客户使用S7-1200 PID程序块,使用的反馈值是 INPUT ,启动自整定后出现输入值超出设定范围错误,无法启动自整定功能。解答:
经过与用户多次交流,发现问题是存储器地址冲突: 客户使用了INPUT输入变量,经过模拟量输入处理程序标定上限为:100.0,下限为:0.0。分配的存储地址是MD516,在客户的程序内容还使用了MW516 ,MD518地址。导致地址冲突,修改MD516数据,使MD516存储器保存的数据大于100.0,当启动自整定时,出现输入值超出设定范围错误。
扩展知识
1. MD516 包括4个字节: MB516 ,MB517,MB518,MB519,当使用MD516寄存器,其他程序不能使用MB516,MB517,BM518,MB519。否则,导致地址冲突,保存数据被修改或丢失。在S7-200的M区和V区;S7-300/S7-400的M区都需要注意此问题。2. S7-1200 PID的两个反馈数据 INPUT/INPUT-PER区别,以及与Setpoint的关系。 INPUT是现场仪表测量数据,经过程序标定转换成实际工程量数据。数据类型是实数。 INPU-PER是现场仪表数据直接经过模拟量通道进行测试,未进行数据标定,数据类型是WORD。可以通过PID组态直接进行数据标定,转换成实际工程量。推荐使用此方法。
Setpoint:设定值,PID系统通过调解输出设备,使反馈值与设定值相等。设置范围即是反馈值标定的上下限。
3. Output,Output_PER, Output-PWM区别,
这三个信号全是输出信号,Output与Output_Per是一组,
Output输出是一个百分比数,即0%~100%,指控制设备全关或全开。
Output_Per直接输出至模拟量通道,输出整数0~27648
Output_Pwm输出是脉宽信号,开关量输出,与上面两个信号不相同,单独使用。
建议的组态过程:
如图1 程序块

https://p9.toutiaoimg.com/img/tos-cn-i-qvj2lq49k0/62bcd1aef0c74db89e23406eff9633bb~tplv-tt-shrink:640:0.image

图1
如图2 基本参数配置 反馈与输出配置https://p6.toutiaoimg.com/img/tos-cn-i-qvj2lq49k0/e01b9c72fd3d46f688938ad1a8540d19~tplv-tt-shrink:640:0.image

图2
如图3 反馈数据标定https://p6.toutiaoimg.com/img/tos-cn-i-qvj2lq49k0/f41c052db58a42fab3482153579fda21~tplv-tt-shrink:640:0.image

图3
客户问题2:如何启动S7-1200的自整定,客户的设定值与反馈值过于接近,无法使用“启动自整定”
解答:
当您的系统各部分已经准备完毕,可以使用自整定,自整定功能只是系统将自动优化或计算PID参数,是调试的一种方法,正常运行时,不必运行自整定调试程序。
方法如下:
第一步:启动测试https://p9.toutiaoimg.com/img/tos-cn-i-qvj2lq49k0/da90440eeafd4bd19c05a83eae65fc99~tplv-tt-shrink:640:0.image

图4
第二步:设定值设定
首次启动自调节: 建议第一次自整定时,一定要使用“启动首次自整定”,可以避免系统出现发散现象,无法正常工作
设定值要求:
设定值 – 反馈值(已标定) > 0.3 * 反馈值上限 – 反馈值下限制

设定值 – 反馈值(已标定) > 0.5 * 设定值
运行自整定:微调,校验PID参数,在完成首次自整定后,建议启动运行自整定,对PID参数进行再次检验。
设定值要求:
设定值 – 反馈值(已标定) <0.3 * 反馈值上限 – 反馈值下限制

设定值 – 反馈值(已标定) < 0.5 * 设定值
第三步 启动自整定,见图5https://p3.toutiaoimg.com/img/tos-cn-i-qvj2lq49k0/6756296c433144d18793172b7fbe9638~tplv-tt-shrink:640:0.image

图5
第4步 完成状态https://p9.toutiaoimg.com/img/tos-cn-i-qvj2lq49k0/f0b8f36c18e2497192071dad43af162c~tplv-tt-shrink:640:0.image

图6
以上就是用户在现场实际情况中遇到的两个问题,不过,对PID来讲,我又做了如下的问题的扩展,希望对大家有进一步的帮助。
问题:S7-1200 PID正常运行的情况下,出现错误,如何恢复。
解答:
在程序块 PID_Compact内,管角Error=1时,指示当前PID运行状态出错。要重新启动PID功能,需要修改PID模式-PID_CompactDB.sRet.i_Mode。来恢复PID运行,在复位PID之前,需要确认错误已经消除。其他方法无法重新启动PID,包括Reset功能也不能重置。具体程序如图7https://p3.toutiaoimg.com/img/tos-cn-i-qvj2lq49k0/bc98a1a930e4463e88cc01a51331204b~tplv-tt-shrink:640:0.image

图7西门子的PID还是很强大的 自整定后非常稳定 我有个5个加热区需要工作 其他4个区用自己做的PID 可以正常工作 但是有一个区却始终达不到使用要求 温度的偏差在20度左右然后用S71200的 PID 功能块自整定以后效果非常好 温差在0.5度以内。问题就是当模块的输入值超限以后 PID工作块会报故障 复位故障,重新上电以后也不能正常工作 。这个时候,你需要做一个自己复位的小程序 复位下功能块就可以了 。当有故障时自动复位功能块,但是这个时候功能块的状态值会变成0,状态为0的时候加热是不会工作的。要自己做个小程序 当状态字的值为零时,把3赋值给以下地址"PID_Compact_DB_1".sRet.i_Mode就OK了 做了这个以后我的加热功能PID 再也没有出过问题PID_Compact_1.sRet.i_Mode

wx_DIOH2iZI 发表于 2025-11-14 09:25:48

同款经历!我当初也这么过来的😂

taoyongt2l91 发表于 2025-11-14 10:48:49

这波分析到位,逻辑满分!

mvvp123 发表于 2025-11-14 11:19:53

求个链接 / 教程,楼主好人一生平安~

catos 发表于 2025-11-14 11:25:14

同款经历!简直是世另我

dongnansj 发表于 2025-11-14 11:30:43

赞同 + 10086,完全说出了我的想法!

不要说_aaspS 发表于 2025-11-14 11:34:21

水个经验,支持楼主,加油呀

qwert 发表于 2025-11-14 11:39:13

内容太顶了!疯狂点赞,已默默收藏~

961889143 发表于 2025-11-14 11:42:13

学到干货了,感谢分享,已火速收藏

tomryo 发表于 2025-11-14 11:43:20

来凑个热闹,增加点人气~
页: [1] 2
查看完整版本: 如何使用S7-1200的PID功能(图文)