参数 State 和 sRet.i_Mode V1 参数的相关性 State 参数指示 PID 控制器的当前操作模式。 您无法修改 State 参数。 需要修改 sRet.i_Mode 变量来更改操作模式。 当新操作模式的值已处于 sRet.i_Mode 中时,这 同样适用。 首先设置 sRet.i_Mode = 0 ,然后设置 sRet.i_Mode = 3。 如果控制器的当前操作 模式支持此更改,则会将 State 设置为 sRet.i_Mode 的值。 PID_Compact 自动切换操作模式时,State != sRet.i_Mode。 示例: • 成功预调节 State = 3 并且 sRet.i_Mode = 1 • 出错 State = 0 并且 sRet.i_Mode 的值保持不变,例如 sRet.i_Mode = 3 • ManualEnalbe = TRUE State = 4,并且 sRet.i_Mode 保持之前的值不变,例如 sRet.i_Mode = 3 说明 如果希望重复成功的jingque调节而不退出自动模式,则设置 i_Mode = 0。 在一个周期内将 sRet.i_Mode 设置为无效值(例如 9999)对 State 没有影响。 在下一个周 期中设置 Mode = 2。 这样可以对 sRet.i_Mode 进行更改而无需首先切换到“未激活”模式。
值的含义 State / sRet.i_Mode 操作模式说明 0 未激活 控制器关闭。 执行预调节前控制器处于“未激活”模式。 如果发生错误或者在调试窗口中单击“禁用控制器”(Deactivate controller) 图标,则运行中的 PID 控制器将切换 为“未激活”模式。 1 预调节 预调节功能可确定对输出值跳变的过程响应,并搜索拐点。 根据受控系统的Zui大上升速率与死时间的函数计 算zuijia的 PID 参数。 预调节的要求: • 控制器处于未激活模式或手动模式 • ManualEnable = FALSE • 过程值不能过于接近设定值。 |Setpoint - Input| > 0.3 * |sPid_Cmpt.r_Pv_Hlm - sPid_Cmpt.r_Pv_Llm| 且 |Setpoint - Input| > 0.5 * |Setpoint| • 预调节期间不能更改设定值。 过程值的稳定性越高,就越容易计算 PID 参数以及提高结果的精度。 只要过程值的上升速率明显高于噪声,就 可以容忍过程值的噪声。 重新计算 PID 参数之前将对其进行备份并且可使用 sPid_Cmpt.b_LoadBackUp 重新激活这些参数。 预调节成功后自动模式将发生变化,预调节失败后“未激活”模式将发生变化。 预调节阶段由变量 i_Event_SUT V1 (页 260)来指示。 255 指令 10.1 PID_Compact PID 控制 功能手册, 11/2023, A5E35300232-AG State / sRet.i_Mode 操作模式说明 2 jingque调节 jingque调节将使过程值出现恒定受限的振荡。 根据该振荡的幅度和频率对 PID 参数进行优化。 对预调节期间与 jingque调节期间的过程响应之间的差异进行分析。 所有 PID 参数都将根据相应结果进行重新计算。 jingque调节得 出的 PID 参数通常比预调节得出的 PID 参数具有更好的主控和扰动特性。 PID_Compact 将自动尝试生成大于过程值噪声的振荡。 过程值的稳定性对jingque调节的影响非常小。 重新计算 PID 参数之前将对其进行备份并且可使用 sPid_Cmpt.b_LoadBackUp 重新激活这些参数。 jingque调节的要求: • 不能被干扰。 • 设定值和过程值均在组态的限值范围内。 • jingque调节期间不能更改设定值。 • ManualEnable = FALSE • 自动模式 (State = 3)、未激活模式 (State = 0) 或手动模式 (State = 4) 在以下模式下启动jingque调节时,具体情况如下所述: • 自动模式 (State = 3) 如果希望通过控制器调节来改进现有 PID 参数,请在自动模式下启动jingque调节。 PID_Comact 将使用现有的 PID 参数进行调节,直到控制回路已稳定并且jingque调节的要求得到满足为止。之 后才会启动jingque调节。 • 未激活模式 (State = 0) 或手动模式 (State = 4) 如果满足预调节的要求,则启动预调节。 建立的 PID 参数将用于进行调节,直到控制回路已稳定并且jingque 调节的要求得到满足为止。之后才会启动jingque调节。如果无法实现预调节,PID_Compact 将切换到“未激 活”模式。 如果预调节的过程值已经十分接近设定值或者 sPid_Calc.b_RunIn = TRUE,则将尝试利用Zui小或Zui大输出值 来达到设定值。这可能会增加超调量。 控制器将在成功完成“jingque调节”后切换为“自动模式”,如果未成功完成“jingque调节”,则切换为“未激活”模式。 “jingque调节”阶段由变量 i_Event_TIR V1 (页 260)来指示。 3 自动模式 在自动模式下,PID_Compact 会按照指定的参数来更正受控系统。 如果满足下列条件之一,控制器将切换到自动模式: • 预调节成功完成 • jingque调节成功完成 • 变量 sRet.i_Mode 的值变为 3。 CPU 启动或从 Stop 模式切换到 RUN 模式后,PID_Compact 会以Zui近激活的操作模式启动。要使 PID_Compact 保持在“未激活”模式下,应设置 sb_RunModeByStartup = FALSE。 4 手动模式 在手动模式下,在 ManualValue 参数中指定手动输出值。 如果 sRet.i_Mode = 4 或 ManualEnable 处于上升沿,将启用此操作模式。 如果 ManualEnable 更改为 TRUE, 则只有 State 将发生改变。sRet.i_Mode 将保留其当前值。PID_Compact 将在 ManualEnable 处出现下降沿时返 回到前一个操作模式。 到自动模式的切换是无扰动的。参数 Error V1 如果多个错误同时处于待决状态,将通过二进制加法显示错误代码值。例如,显示错误代码 0003 表示错误 0001 和 0002 同时处于待决状态。 Error (DW#16#...) 说明 0000 没有任何错误。 0001 参数“Input”超出了过程值限值的范围。 • Input > sPid_Cmpt.r_Pv_Hlm 或 • Input < sPid_Cmpt.r_Pv_Llm 在消除错误之前不能再次移动执行器。 0002 参数“Input_PER”的值无效。请检查模拟量输入是否有处于未决状态的错误。 0004 jingque调节期间出错。过程值无法保持振荡状态。 0008 预调节启动时出错。过程值过于接近设定值。开始jingque调节。 0010 调节期间设定值发生更改。 0020 在自动模式下或调节期间不允许进行预调节。 0080 预调节期间出错。未正确组态输出值限制或实际值未按预期响应。 检查输出值的限值是否已正确组态及其是否匹配控制逻辑。 此外,还要确认实际值在开始预调节前未强烈振荡。 0100 调节期间的错误导致生成无效参数。 0200 参数“Input”的值无效:值的数字格式无效。 0400 输出值计算失败。请检查 PID 参数。 0800 采样时间错误:未在周期中断 OB 的采样时间内调用 PID_Compact。 如果在使用 PLCSIM 进行仿真期间出现该错误,请参见使用 PLCSIM 仿真 PID_Compact V1 (页 103)下的说 明。 1000 参数“Setpoint”的值无效:值的数字格式无效。版本 V1 的 Reset 参数 对 Reset = TRUE 的响应取决于 PID_Compact 指令的版本。 PID_Compact 版本 V1.1 及更高版本的 Reset 响应 Reset 出现上升沿时会触发切换到“未激活”模式;复位错误和警告并删除积分作用。Reset 出现 下降沿时会触发切换到Zui近激活的操作模式。如果之前自动模式已激活,则会以无扰动切换的 方式对积分作用进行预分配。PID_3Step 的新特性 PID_3Step V2.3 • 自 PID_3Step 版本 2.3 起,可以通过 Config.VirtualActuatorLimit = 0.0 取消激活行程时间 的监视和限制。 PID_3Step V2.2 • 与 S7-1200 结合使用 自 PID_3Step V2.2 起,固件为 4.0 或更高版本的 S7-1200 上也可以使用具有 V2 功能的指 令。 PID_3Step V2.0 • 对错误的响应 对 ActivateRecoverMode = TRUE 的响应已经过全面改进。在默认设置下,PID_3Step 的响 应方式具有更强的容错性。 注意 您的系统可能已损坏。 如果使用默认设置,则即使超过过程值的限值,PID_3Step 也将保持自动模式。这可能损 坏您的系统。 必须组态受控系统在出现错误时如何作出响应以避免系统损坏。 可使用 ErrorAck 输入参数在不重启控制器或清除积分作用的情况下确认错误和警告。 切换工作模式不会确认处于非未决状态的错误。 • 切换工作模式 在 Mode 输入/输出参数处指定工作模式,并在 ModeActivate 的上升沿启动该工作模式。 Retain.Mode 变量已被忽略。 转换时间测量不能再通过 GetTransitTime.Start 进行启动,只能通过 Mode = 6 并在 ModeActivate 的上升沿进行启动。 • 多重背景功能 可将 PID_3Step 作为多重背景数据块进行调用。 • 启动特性 如果 RunModeByStartup = TRUE,则在 Mode 参数处指定的工作模式也将在 Reset 的下降 沿并在 CPU 冷启动期间启动。 • ENO 特性 ENO 根据工作模式进行设置。 如果 State = 0,那么 ENO = FALSE。 如果 State ≠ 0,那么 ENO = TRUE。