参数 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 = TRUEState = 4,并且 sRet.i_Mode 保持之前的值不变,例如 sRet.i_Mode = 3说明如果希望重复成功的jingque调节而不退出自动模式,则设置 i_Mode = 0。在一个周期内将 sRet.i_Mode 设置为无效值(例如 9999)对 State 没有影响。 在下一个周期中设置 Mode = 2。 这样可以对 sRet.i_Mode 进行更改而无需首先切换到“未激活”模式。变量 数据类型 默认值 说明sPid_Cmpt.r_Pv_Hlm(1) REAL 120.0 过程值的上限在 I/O 输入中,过程值Zui大可超出标准范围 18%(过范围)。如果超出“过程值的上限”,将不再报告错误。仅识别断线和短路,然后 PID_Compact 切换到“未激活”模式。r_Pv_Hlm > r_Pv_LlmsPid_Cmpt.r_Pv_Llm(1) REAL 0.0 过程值的下限r_Pv_Llm < r_Pv_HlmsPid_Cmpt.r_Pv_HWrn(1) REAL +3.402822e+38过程值的警告上限如果设置的 r_Pv_HWrn 超出了过程值的限值范围,则所组态的过程值的juedui上限将用作警告上限。如果组态的 r_Pv_HWrn 值位于过程值的限值范围内,则该值将用作警告上限。r_Pv_HWrn > r_Pv_LWrnr_Pv_HWrn ≤ r_Pv_HlmsPid_Cmpt.r_Pv_LWrn(1) REAL -3.402822e+38过程值的警告下限如果设置的 r_Pv_LWrn 超出了过程值的限值范围,则所组态的过程值的juedui下限将用作警告下限。如果组态的 r_Pv_LWrn 值位于过程值的限值范围内,则该值将用作警告下限。r_Pv_LWrn < r_Pv_HWrnr_Pv_LWrn ≥ r_Pv_LWrnsPidCalc.i_Ctrl_IOutv(1) REAL 0.0 当前积分作用sParamCalc.i_Event_SUT INT 0 变量 i_Event_SUT (页 240) 指示当前的“预调节”阶段:sParamCalc.i_Event_TIR INT 0 变量 i_Event_TIR (页 240) 指示当前的“jingque调节”阶段:sRet.i_Mode INT 0 操作模式的更改由沿触发。变量值发生变化时,将相应启用以下操作模式• i_Mode = 0:“未激活”模式(控制器停止)• i_Mode = 1:“预调节”模式• i_Mode = 2:“jingque调节”模式• i_Mode = 3:“自动”模式• i_Mode = 4:“手动”模式保持 i_Mode。sRet.r_Ctrl_Gain(1) REAL 1.0 有效的比例增益保持 Gain。sRet.r_Ctrl_Ti(1) REAL 20.0 • r_Ctrl_Ti > 0.0:有效积分作用时间• r_Ctrl_Ti = 0.0:积分作用取消激活保持 r_Ctrl_Ti。sRet.r_Ctrl_Td(1) REAL 0.0 • r_Ctrl_Td > 0.0:有效的微分作用时间• r_Ctrl_Td = 0.0:微分作用取消激活保持 r_Ctrl_Td。sRet.r_Ctrl_A(1) REAL 0.0 有效的微分延时系数保持 r_Ctrl_A。sRet.r_Ctrl_B(1) REAL 0.0 有效的比例作用权重保持 r_Ctrl_B。sRet.r_Ctrl_C(1) REAL 0.0 有效的微分作用权重保持 r_Ctrl_C。234PID 控制功能手册, 11/2022, A5E35300232-AF指令10.1 PID_Compact变量 数据类型 默认值 说明sRet.r_Ctrl_Cycle(1) REAL 1.0 有效的 PID 算法采样时间在调节期间计算 r_Ctrl_Cycle,并将其舍入为 r_Cycle 的整数倍。r_Ctrl_Cycle 用作脉宽调制的时间。保持 r_Ctrl_Cycle。
值的含义State /sRet.i_Mode操作模式说明0 未激活控制器关闭。执行预调节前控制器处于“未激活”模式。如果发生错误或者在调试窗口中单击“禁用控制器”(Deactivate controller) 图标,则运行中的 PID 控制器将切换为“未激活”模式。
State /sRet.i_Mode操作模式说明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 (页 240)来指示。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 (页 240)来指示。3 自动模式在自动模式下,PID_Compact 会按照指定的参数来更正受控系统。如果满足下列条件之一,控制器将切换到自动模式:• 预调节成功完成• jingque调节成功完成• 变量 sRet.i_Mode 的值变为 3。CPU 启动或从 Stop 模式切换到 RUN 模式后,PID_Compact 会以Zui近激活的操作模式启动。要使 PID_Compact保持在“未激活”模式下,应设置 sb_RunModeByStartup = FALSE。State /sRet.i_Mode操作模式说明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 (页 95)下的说明。1000 参数“Setpoint”的值无效:值的数字格式无效。参数 Reset V1对 Reset = TRUE 的响应取决于 PID_Compact 指令的版本。复位响应 PID_Compact V.1.1 或更高版本Reset 出现上升沿时会触发切换到“未激活”模式;复位错误和警告并删除积分作用。Reset 出现下降沿时会触发切换到Zui近激活的操作模式。如果之前自动模式已激活,则会以无扰动切换的方式对积分作用进行预分配。复位响应 PID_Compact V.1.0Reset 出现上升沿时会触发切换到“未激活”模式;复位错误和警告并删除积分作用。在 i_Mode出现下一沿之前,不会重新激活控制器。变量 sd_warning V1如果多个警告处于待决状态,将通过二进制加法显示变量 sd_warning 的值。 例如,显示警告0003 表示警告 0001 和 0002 也处于待决状态。