[西门子] S71200 PID_Temp 组态步骤详解

[复制链接]
查看136 | 回复0 | 2024-4-4 23:10:16 | 显示全部楼层 |阅读模式
可以使用工艺对象对 PID_Temp 进行组态和调试,下面通过一个例子说明组态和调试过程。
这是一个针对某种物质的温度调节系统,通过一个加热阀和一个冷却阀来调节温度,加热阀采用模拟量控制的比例阀,冷却阀采用数字量输出控制的开关阀,如图 1 所示。
S7-1200 PID 功能不支持仿真功能。只能通过真实 CPU 组态下载程序。

图 1. PID_Temp 温度调节系统
使用 PID 功能,需要在循环中断 OB 中调用 PID_Temp 指令,所以要先添加循环中断 OB。在循环中断 OB 的属性中,可以修改其循环时间,如图 2 所示。

图 2. 添加循环中断后在属性界面修改其循环时间
为保证以恒定的时间间隔执行 PID 指令,必须在循环中断 OB 中调用。
在“指令 > 工艺 > PID 控制 > Compact PID”下,将 PID_Temp 指令添加至循环中断 OB,如图 3 所示。  

图 3. 在循环中断 OB 中添加 PID_Temp 指令
当添加完 PID_Temp 指令后,在项目树 > 工艺对象文件夹中,会自动关联出对应背景 DB 的工艺对象,如图 4 所示的 PID_Temp_1[DB1],包含组态和调试功能。

图 4. 工艺对象中关联生成 PID_Temp
使用 PID 控制器前,需要对其进行组态设置。双击工艺对象下的组态进入组态界面,分为基本设置、过程值设置、输出设置以及高级设置等部分,如图 5 所示。

图 5. PID_Temp 组态界面
基本设置

1、基本设置--控制器类型
设置控制器类型,如图 6 所示。
a. 为设定值、过程值选择物理量和测量单位。设定值和过程值将以该测量单位显示。
b. 要在 CPU 重启后切换到“模式”(Mode) 参数中保存的工作模式,请勾选“在 CPU 重启后激活模式”。

图 6. 设置控制器类型
本例子中物理量选择温度,单位选择 ℃。
2、基本设置--设置 Input/Output 参数
选择 PID 过程值和输出值的方式,如图 7 所示。
如果过程值与模拟量输入值成正比,则可以选择 Input_PER, PID_Temp 会将该模拟量输入值标定为过程值的物理量。
如果程序里已经把模拟量输入值标定到过程值,或者由于过程值与模拟量输入值并不成正比,需要编写处理程序进行转换,则选择 Input。
本例中采用直接使用模拟量输入,选择 Input_PER。

图 7. 选择 Input/Output
PID_Temp 提供以下形式的输出值。 根据执行器的类型选择要使用的输出值,参考图 7 所示蓝框与紫框。

  • OutputHeat
加热输出值(REAL形式):如果需要通过用户程序来处理加热的输出值,例如,由于执行器响应为非线性等原因。


  • OutputHeat_PER
模拟量加热输出值: 通过模拟量输出触发加热执行器,并使用连续信号(如 0...10V、4...20 mA)控制加热执行器。


  • OutputHeat_PWM
脉宽调制加热输出值: 通过数字量输出控制加热执行器。 脉宽调制可生成不同的 ON 和 OFF 时间。


  • OutputCool
制冷输出值(REAL形式):如果需要通过用户程序来处理制冷的输出值,例如,由于执行器响应为非线性等原因。


  • OutputCool_PER
模拟量制冷输出值: 通过模拟量输出触发制冷执行器,并使用连续信号(如 0...10V、4...20 mA)控制制冷执行器。


  • OutputCool_PWM
脉宽调制制冷输出值: 通过数字量输出控制制冷执行器。 脉宽调制可生成不同的 ON 和 OFF 时间。
本例加热选择 OutputHeat_PER,制冷选择 OutputCool_PWM。
如果需要制冷输出,则选择“激活制冷”,参考图 7 所示绿框。

  • 选择“激活制冷”时,PID 算法的输出值 (PidOutputSum) 将在标定后在加热输出中输出。
  • 不选“激活制冷”时,PID 算法的正输出值 (PidOutputSum) 将在标定后在加热输出中输出。 PID 算法的负输出值则在标定后在制冷输出中输出。
本例中需要用到制冷输出,所以选中"激活制冷"。
2、基本设置--级联
级联设置用于做 PID 串级控制,如图 8 所示,具体设置方法参见链接。
本例中不做级联设置。

图 8. 设置级联
过程值设置

1、过程值设置--过程值限值
为过程值指定绝对上限和绝对下限,作为受控系统的限值,如图 9 所示。必须满足过程值下限<过程值上限。如果过程值超出限值,就会出现错误 (ErrorBits = 00000001H)。

图 9. 设置过程值限值
本例中假设过程值的绝对上限是120°,绝对下限是0°。
2、过程值设置--过程值标定
设置过程值标定,如图 10 所示。
a. 当且仅当在 Input/Output 中输入选择为 “Input_PER” 时,才可组态过程值标定。
b. 如果过程值与模拟量输入值成正比,则将使用上下限值对来标定 Input_PER。
c. 必须满足范围的下限<上限。

图 10. 进行过程值标定
假设模拟量采用 0-10V 的输入信号,对应 0-200℃ 的量程,那么 Input_PER 的下限和上限分别是 0 和 27648,标定的过程值下限和上限分别是 0℃ 和 200℃。
输出设置

1、输出设置--输出的基本设置
1)加热/制冷
在基本设置中激活制冷时,此处参数才可进行设置。该参数用于设置制冷 PID 参数的计算方式,有两种方式,如图 11 所示。

  • 切换加热/制冷的PID参数

    • 采用单独的制冷 PID 参数。
    • 适用于加热执行器和制冷执行器的时间响应和增益都不同的情况。
    • 可对制冷进行预调节和精确调节。

  • 加热/制冷的系数(制冷系数在下方单独设置)

    • 结合加热过程的 PID 参数和制冷系数来计算制冷参数。
    • 适用于加热执行器和制冷执行器的时间响应相似但增益不同的情况。
    • 无法对制冷进行预调节和精确调节,只能执行加热调节。





    • 图 11. 制冷参数方式设置
    • 本例中选择切换加热/制冷的 PID 参数方式。
    • 2)对错误的响应
    • 可以预先设置错误响应时 PID 的输出状态,以便在发生错误时,控制器在大多数情况下均可保持激活状态,如图 12 所示。




图 12. 对错误的响应
对错误的响应中,PidOutputSum 设置可以有三个选项:

  • 非活动
  • 错误待定时的当前值
  • 错误未决时的替代输出值
选择不同的错误响应方式,出现不同的错误时,PID指令的行为不尽相同,如表 1 所示。

表 1. 错误响应方式
如果控制器频繁报错,建议检查 Errorbits 参数并消除错误。
2、输出值限值和标定
这里是用于输出值的标定和上下限值设置,如图 13 所示。
PID_Temp 根据 PID 算法对偏差进行计算,得出 PID 输出值 (PidOutputSum),然后将 PID 输出值 (PidOutputSum)标定到加热和制冷的各个形式的输出值(OutputHeat, OutputHeat_PER, OutputHeat_PWM, OutputCool, OutputCool_PER, OutputCool_PWM)。

图 13. 设置输出值限值和标定
如果禁用制冷,PID 输出值将限制在 PID 加热输出值的上下限之间,如图 14 所示。

图 14. 禁用制冷方式的输出值限制
如果激活制冷,PID 输出值将限制在 PID 制冷输出值的下限和 PID 加热输出值的上限之间,如图 15 所示。

图 15. 激活制冷方式的输出值限制
本例中假设通过 0-10V 的电压信号控制加热阀,那么标定如图 16 所示。其中,图 16 左边部分在输出限值和标定 > OutputperHeat_PER/OutputperCool_PER 中设置;图 16 右边部分在输出限值和标定 > OutputperHeat_PWM/OutputperCool_PWM 中设置。

图 16. 本例输出值标定
高级设置

1、高级设置--过程值监视
在“过程值监视”(Process value monitoring) 组态窗口中,组态过程值的警告上限和下限,如图 17 所示。
a. 过程值的警告限值范围需要在过程值限值范围之内。
b. 如果过程值高于警告上限,则输出参数 InputWarning_H = TRUE。
c. 如果过程值低于警告下限,则输出参数 InputWarning_L = TRUE。

图 17. 过程监控值设置
如果过程值超过过程值限值,PID 输出报错。
下面举例说明 PID_Temp 对于分别超出过程值限制范围和警告范围的响应方式。
假设限制范围如下:

  • 过程值上限 = 98℃
  • 警告上限 = 90℃
  • 警告下限 = 10℃
  • 过程值下限 = 0℃
PID_Temp 将按表 2 方式响应:

表 2. 报警
2、高级设置-- PWM 限制
PID 输出值 PidOutputSum 在标定后通过脉宽调制转换成脉冲串在 OutputHeat_PWM 或 OutputCool_PWM 输出参数中输出。
"PID 算法的采样时间"是两次计算 PID 输出值之间的时间。该采样时间用作脉宽调制的周期。
PID_Temp 采样时间是调用 PID_Temp 指令的循环中断 OB 的循环时间。
脉冲持续时间与 PID 输出值成比例并且是 PID_Temp 采样时间的整数倍。
PWM 输出信号的精度由脉宽调制的周期与 PID_Temp 采样时间的比率决定。
PWM 输出原理如图 18 所示:

① PID_Temp 采样时间 = 100 ms
② 加热的 PID 算法采样时间 = 1000 ms
③ 脉冲持续时间 = 300 ms (前 3 个 PID_Temp 采样时间 OutputHeat_PWM 输出 “TRUE”)
④ 中断时间 = 700 ms (后 7 个 PID_Temp 采样时间 OutputHeat_PWM 输出 “FALSE”)
图 18. PID_Temp 的 PWM 输出原理
为最大程度地减小工作频率并节省执行器,可以分别为加热和制冷设置最短开/关时间,如图 19 所示。

图 19. 设置 PWM 限制
如果已在基本设置中选择 OutputHeat/OutputCool 或 OutputHeat_PER/OutputCool_PER 作为输出,最短开启时间和最短关闭时间将不起作用,并且也无法更改这两个时间。
脉冲持续或中断时间不会小于最短开关时间。

  • 如果输出小于最短接通时间将不输出脉冲。
  • 如果输出大于(PID 算法采样时间-最短关闭时间), 则整个周期输出高电平。
在当前 PID 算法采样周期中,因小于最短接通时间未能输出脉冲的,会在下一个 PID 算法采样周期中累加和补偿由此引起的误差。
例如:PID_Temp 采样时间 = 100ms;PID 算法采样时间 = 1000ms;最短开启时间 = 200 ms(即已组态的最小接通脉冲为 PID_Temp 的 20%),若此时 PID 输出恒定为 15%。
则在第一个周期内不输出脉冲。在第二个周期内,将第一个周期内未输出的脉冲累加到第二个周期的脉冲,依次输出。如图 20 所示。

① PID_Temp 采样时间
② 加热的 PID 算法采样时间
⑤ 最短接通时间
图 20. PWM 最小开/关时间影响示例图
如果使用 OutputHeat_PWM 或 OutputCool_PWM 时, PID 算法采样时间作为脉宽调制的周期时间过大,则可在 Config.Output.Heat.PwmPeriode 或 Config.Output.Cool.PwmPeriode 参数中定义存在偏差的稍短周期时间来改善过程值的平滑度,如图 21 所示。
如果 PID 算法的采样时间不是 PwmPeriode 的整数倍,则在 PID 算法采样时间内 PWM 的最后一个周期都将相应延长。

① PID_Temp 采样时间 = 100.0 ms(调用循环中断 OB 的周期时间,CycleTime.Value 变量)
② PID 算法采样时间 = 2000.0 ms(Retain.CtrlParams.Heat.Cycle 变量)
③ 加热的 PWM 时间 = 600.0 ms(Config.Output.Heat.PwmPeriode 变量)
图 21. PwmPeriode 参数原理
3、高级设置--手动输入 PID 参数
在 PID Temp 组态界面可以手动修改 PID 参数,如图 22 所示。通过此处修改的参数对应工艺对象背景数据块 > Static > Retain > CtrlParams 中的 PID 参数。
通过组态界面离线方式修改的是参数的起始值,需要重新下载并重启 PLC 才生效。建议通过在线方式进行操作,详见常见问题

图 22. PID 组态高级设置_手动输入 PID 参数
PID 基本参数说明详见前面指令介绍部分,温度控制相关参数死区宽度和控制区宽度说明如下。
1)死区宽度
如果过程值受到噪声影响,则噪声也会对输出值产生影响。为了减少输出值不必要的波动,可以设置死区。
如果已在基本设置中禁用了制冷,或使用了制冷系数,则死区对称地位于"设定值 - 死区宽度(加热)"和"设定值 + 死区宽度(加热)"之间,如图 23 所示。
当 -死区宽度(加热) <= Setpoint-Input <= 死区宽度(加热),则经过死区计算后的偏差值 = 0。

图 23. 禁用制冷或使用制冷系数方式的死区范围
如果已在基本设置中激活了制冷,并且在输出设置中将 PID 参数切换选作加热/制冷方法,则死区位于"设定值 - 死区宽度(加热)"和"设定值 + 死区宽度(制冷)"之间,如图 24 所示。
当 -死区宽度(制冷) <= Setpoint-Input <= 死区宽度(加热),则经过死区计算后的偏差值 = 0。

图 24. 激活制冷并采用切换加热/制冷的 PID 参数方式的死区范围

  • 死区宽度不能通过自整定进行自动计算,只能通过手动设置。
  • 如果将死区宽度设置为 0.0,则禁用死区。
  • 如果比例作用权重或微分作用权重不等于 1.0,则即使在死区内,设定值的变化也会影响输出值。
  • 无论权重如何,死区内的过程值变化都不会影响输出值。
2)控制区宽度
温度控制系统是一个有明显滞后特性的对象,这给实际的调节过程带来了很多的问题,最显著的问题就是在过程值偏离设定值较大时,调节过程过于缓慢,而在接近设定值时又容易出现较大的超调。针对这种情况,可以采用控制区功能加以改善。

  • 如果过程值处于设定值附近的控制区之外,控制器将输出最小输出值或最大输出值。这意味着,过程值会更快地趋近设定值。
  • 如果过程值位于设定值附近的控制区之内,则输出值通过 PID 算法进行计算。
如果已在基本设置中禁用了制冷,或使用了制冷系数,则控制区对称地位于"设定值 - 控制区宽度(加热)"和"设定值 + 控制区宽度(加热)"之间,如图 25 所示。
当禁用制冷时:

  • 如果 Input > Setpoint + 控制区宽度(加热),则 PidOutputSum = 加热输出值下限
  • 如果 Input < Setpoint - 控制区宽度(加热),则 PidOutputSum = 加热输出值上限
  • 如果 Setpoint - 控制区宽度(加热)<= Input <= Setpoint + 控制区宽度(加热),则 PidOutputSum 根据 PID 算法正常计算
当激活制冷并使用制冷系数时:

  • 如果 Input > Setpoint + 控制区宽度(加热),则 PidOutputSum = 制冷输出值下限
  • 如果 Input < Setpoint - 控制区宽度(加热),则 PidOutputSum = 加热输出值上限
  • 如果 Setpoint - 控制区宽度(加热)<= Input <= Setpoint + 控制区宽度(加热),则 PidOutputSum 根据 PID 算法正常计算



图 25. 禁用制冷或使用制冷系数方式的控制区
如果已在基本设置中激活了制冷,并且在输出设置中选择切换加热/制冷的 PID 参数,则控制区位于"设定值 - 控制区宽度(加热)"和"设定值 + 控制区宽度(制冷)"之间,如图 26 所示。

  • 如果 Input > Setpoint + 控制区宽度(制冷),则 PidOutputSum = 制冷输出值下限
  • 如果 Input < Setpoint - 控制区宽度(加热),则 PidOutputSum = 加热输出值上限
  • 如果 Setpoint - 控制区宽度(加热)<= Input <= Setpoint + 控制区宽度(制冷),则 PidOutputSum 根据 PID 算法正常计算



图 26. 激活制冷并采用切换加热/制冷的 PID 参数方式的控制区

  • 如果将控制区宽度设置为默认值 3.402822e+38,则禁用控制区。
  • 只有将 "PID(温度)" 选作加热或制冷过程的控制器结构时,才会在预调节过程中自动设置加热或制冷的控制区宽度。
4、高级设置--调节规则
调节规则用于选择自整定 PID 参数的结构,可分别指定适用于加热和制冷的调节规则,如图 27 所示。

图 27. 调节规则

  • PID(温度)

    • 在预调节和精确调节期间计算 PID 参数。
    • 预调节专门用于温度控制过程,可生成更慢、更为渐近的控制响应,与 "PID" 选项相比过调很少。
    • 精确调节与 "PID" 选项相同。
    • 只有选择此选项后,预调节期间才会自动确定控制区宽度。

  • PID

    • 在预调节和精确调节期间计算 PID 参数。

  • PI

    • 在预调节和精确调节期间计算 PI 参数。





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

本帖子中包含更多资源

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

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

本版积分规则