如何使用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~27648Output_Pwm输出是脉宽信号,开关量输出,与上面两个信号不相同,单独使用。建议的组态过程:如图1 程序块
图1如图2 基本参数配置 反馈与输出配置
图2如图3 反馈数据标定
图3客户问题2:如何启动S7-1200的自整定,客户的设定值与反馈值过于接近,无法使用“启动自整定”解答:当您的系统各部分已经准备完毕,可以使用自整定,自整定功能只是系统将自动优化或计算PID参数,是调试的一种方法,正常运行时,不必运行自整定调试程序。方法如下:第一步:启动测试
图4第二步:设定值设定首次启动自调节: 建议第一次自整定时,一定要使用“启动首次自整定”,可以避免系统出现发散现象,无法正常工作设定值要求:设定值 – 反馈值(已标定) > 0.3 * 反馈值上限 – 反馈值下限制 和设定值 – 反馈值(已标定) > 0.5 * 设定值 运行自整定:微调,校验PID参数,在完成首次自整定后,建议启动运行自整定,对PID参数进行再次检验。设定值要求:设定值 – 反馈值(已标定) <0.3 * 反馈值上限 – 反馈值下限制 和设定值 – 反馈值(已标定) < 0.5 * 设定值 第三步 启动自整定,见图5
图5第4步 完成状态
图6以上就是用户在现场实际情况中遇到的两个问题,不过,对PID来讲,我又做了如下的问题的扩展,希望对大家有进一步的帮助。问题:S7-1200 PID正常运行的情况下,出现错误,如何恢复。解答:在程序块 PID_Compact内,管角Error=1时,指示当前PID运行状态出错。要重新启动PID功能,需要修改PID模式-PID_CompactDB.sRet.i_Mode。来恢复PID运行,在复位PID之前,需要确认错误已经消除。其他方法无法重新启动PID,包括Reset功能也不能重置。具体程序如图7
图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