参数 数据类型 默认值 说明ManualEnable BOOLFALSE • 出现 FALSE -> TRUE 沿时会选择“手动模式”,而 State = 4,sRet.i_Mode保持不变。• 出现 TRUE -> FALSE沿时会选择Zui近激活的操作模式,State=sRet.i_Mode。sRet.i_Mode 的变化在 ManualEnable =TRUE 期间不会生效。仅在ManualEnable 处出现 TRUE -> FALSE 沿时 sRet.i_Mode的变化才会生效。PID_Compact V1.2 和 PID_Compact V1.0如果 CPU 启动时 ManualEnable= TRUE,PID_Compact 将在手动模式下启动。并非一定需要 ManualEnable 出现上升沿 (FALSE ->TRUE) 时,才会执行上述操作。PID_Compact V1.1CPU 启动时,PID_Compact 仅在ManualEnable 出现上升沿 (FALSE->TRUE) 时才切换到手动模式。没有上升沿时,PID_Compact在ManualEnable 为 FALSE 的上一个工作模式下启动。ManualValue REAL 0.0手动值该值用作手动模式下的输出值。Reset BOOL FALSE Reset 参数 可重启控制器。
Parameter 数据类型 默认值 说明ScaledInput REAL0.0 标定的过程值的输出可同时使用输出“Output”、“Output_PER”和“Output_PWM”。Output REAL0.0 REAL 形式的输出值Output_PER WORD W#16#0 模拟量输出值Output_PWM BOOL FALSE脉宽调制输出值输出值由Zui短开关时间形成。SetpointLimit_H BOOL FALSE 如果 SetpointLimit_H =TRUE,则说明达到了设定值的juedui上限。 在CPU 中,该设定值被限制为所组态的设定值的juedui上限。设定值的上限默认设置为所组态的过程值的juedui上限。如果设置的 sPid_Cmpt.r_Sp_Hlm值位于过程值的限值范围内,则该值将用作设定值的上限。SetpointLimit_L BOOL FALSE 如果SetpointLimit_L = TRUE,则说明已达到设定值的juedui下限。 在CPU中,该设定值被限制为所组态的设定值的juedui下限。 设定值的下限将默认设置为所组态的过程值的juedui下限。如果设置的sPid_Cmpt.r_Sp_Llm 值位于过程值的限值范围内,则该值将用作设定值的下限。InputWarning_H BOOLFALSE 如果 InputWarning_H = TRUE,则说明过程值已达到或超出警告上限。InputWarning_L BOOLFALSE 如果 InputWarning_L = TRUE,则说明过程值已经达到或低于警告下限。
Parameter 数据类型 默认值 说明State INT 0 State参数 (页 235)显示 PID 控制器的当前操作模式。 要更改操作模式,请使用变量 sRet.i_Mode。• State =0:未激活• State = 1:预调节• State = 2:jingque调节• State = 3:自动模式• State =4:手动模式Error DWORD W#16#0 Error 参数 (页 237)指示错误消息。Error =0000:没有待决的错误。
PID_Compact V1的静态变量说明不得更改未列出的变量。这些变量仅供内部使用。请仅在“未激活”模式下更改使用 (1) 标识的变量,以防 PID控制器出现故障。通过将“sRet.i_Mode”变量设置为“0”强制切换为“未激活”模式。表格 10-6 变量 数据类型默认值 说明sb_GetCycleTime BOOL TRUE 如果 sb_GetCycleTime =TRUE,则开始自动确定周期时间。完成测量后,CycleTime.StartEstimation=FALSE。sb_EnCyclEstimation BOOL TRUE 如果 sb_EnCyclEstimation =TRUE,则计算PID_Compact 采样时间。sb_EnCyclMonitoring BOOL TRUE 如果sb_EnCyclMonitoring = FALSE,则不会监视PID_Compact采样时间。如果不能在采样时间内执行PID_Compact,则不会输出 0800错误,PID_Compact也不会切换到“未激活”模式。sb_RunModeByStartup BOOL TRUE 在 CPU重启后激活模式如果 sb_RunModeByStartup = FALSE,则控制器在 CPU启动后仍保持未激活状态。如果sb_RunModeByStartup = TRUE,则控制器在 CPU重启后返回到上一个活动工作模式。si_Unit INT 0过程值和设定值的测量单位,例如 ºC 或 ºF。si_Type INT 0 过程值和设定值的物理量,如温度。sd_WarningDWORD DW#16#0 变量 sd_warning (页 239)显示自复位或上一次更改操作模式以来所生成的警告。sBackUp.r_Gain REAL 1.0保存的比例增益sPid_Cmpt.b_LoadBackUp = TRUE 时,可以从sBackUp结构中重新加载值。sBackUp.r_Ti REAL 20.0 保存的积分作时间 [s]sBackUp.r_TdREAL 0.0 保存的微分作时间 [s]sBackUp.r_A REAL 0.0 保存的微分延时系数sBackUp.r_B REAL0.0 保存的比例作用权重因子。
变量 数据类型 默认值说明sBackUp.r_C REAL 0.0 保存的微分作用权重因子sBackUp.r_Cycle REAL 1.0 保存的 PID算法的采样时间sPid_Calc.r_Cycle(1) REAL 0.1 PID_Compact 指令采样时间r_Cycle会自动确定,通常等于调用 OB 的周期时间。sPid_Calc.b_RunIn BOOL FALSE • b_RunIn =FALSE在未激活模式或手动模式下启动jingque调节时,将启动预调节。如果不满足预调节的要求,则PID_Compact的响应将类似于 b_RunIn = TRUE 时的响应。如果jingque调节在自动模式下启动,系统将使用现有的 PID参数来控制设定值。之后才会启动jingque调节。如果无法实现预调节,PID_Compact 将切换到“未激活”模式。•b_RunIn = TRUE将跳过预调节。PID_3Compact将尝试利用Zui小或Zui大输出值来达到设定值。这可能会增加超调量。随后将自动启动jingque调节。jingque调节后,b_RunIn将被设置为 FALSE。sPid_Calc.b_CalcParamSUT BOOL FALSE 如果 b_CalcParamSUT =TRUE,将重新计算用于预调节的参数。这样无需重复进行控制器调节,就可以更改参数计算方法。计算后,b_CalcParamSUT将设置为 FALSE。sPid_Calc.b_CalcParamTIR BOOL FALSE 如果 b_CalcParamTIR =TRUE,将重新计算用于jingque调节的参数。这样无需重复进行控制器调节,就可以更改参数计算方法。计算后,b_CalcParamTIR将被设置为 FALSE。sPid_Calc.i_CtrlTypeSUT INT 0 预调节期间用于计算参数的方法:•i_CtrlTypeSUT = 0:根据 Chien、Hrones 和 Reswick计算 PID• i_CtrlTypeSUT =1:根据 Chien、Hrones 和 Reswick计算 PIsPid_Calc.i_CtrlTypeTIR INT 0jingque调节期间用于计算参数的方法:• i_CtrlTypeTIR = 0:PID 自动• i_CtrlTypeTIR =1:PID 快速(与 i_CtrlTypeTIR = 2相比,控制响应速度更快,输出值的幅度更大)• i_CtrlTypeTIR =2:PID 慢速(与 i_CtrlTypiTIR = 1 相比,控制响应速度较慢,输出值的幅度较小)• i_CtrlTypeTIR =3:Ziegler-Nichols PID• i_CtrlTypeTIR = 4:Ziegler-Nichols PI•i_CtrlTypeTIR = 5:Ziegler-Nichols P要通过 b_CalcParamTIR 和i_CtrlTypeTIR = 0、1 或 2 重复计算 PID 参数,也必须通过 i_CtrlTypeTIR = 0、1 或2执行了先前的jingque调节。否则,将使用 i_CtrlTypeTIR = 3。始终可以通过 b_CalcParamTIR 和i_CtrlTypeTIR = 3、4或 5 重新计算 PID 参数。sPid_Calc.r_Progress REAL 0.0百分数形式的调节进度 (0.0 - 100.0)232PID 控制功能手册, 11/2022,A5E35300232-AF指令10.1 PID_Compact变量 数据类型 默认值 说明sPid_Cmpt.r_Sp_Hlm(1)REAL +3.402822e+38设定值的上限如果组态的 sPid_Cmpt.r_Sp_Hlm超出了过程值的限值范围,则所组态的过程值的juedui上限将用作设定值的上限。如果组态的 sPid_Cmpt.r_Sp_Hlm值位于过程值的限值范围内,则该值将用作设定值的上限。sPid_Cmpt.r_Sp_Llm(1) REAL-3.402822e+38设定值的下限如果设置的 sPid_Cmpt.r_Sp_Llm超出了过程值的限值范围,则所组态的过程值的juedui下限将用作设定值的下限。如果设置的 sPid_Cmpt.r_Sp_Llm值位于过程值的限值范围内,则该值将用作设定值的下限。sPid_Cmpt.r_Pv_Norm_IN_1(1) REAL 0.0 标定的Input_PER 下限根据以下两个值对将 Input_PER 转换为百分数:sPid_Cmpt 结构的r_Pv_Norm_OUT_1、r_Pv_Norm_IN_1 和r_Pv_Norm_OUT_2、r_Pv_Norm_IN_2。sPid_Cmpt.r_Pv_Norm_IN_2(1) REAL27648.0 标定的 Input_PER 上限根据以下两个值对将 Input_PER 转换为百分数:sPid_Cmpt 结构的r_Pv_Norm_OUT_1、r_Pv_Norm_IN_1 和r_Pv_Norm_OUT_2、r_Pv_Norm_IN_2。sPid_Cmpt.r_Pv_Norm_OUT_1(1) REAL0.0 标定的过程值的下限根据以下两个值对将 Input_PER 转换为百分数:sPid_Cmpt 结构的r_Pv_Norm_OUT_1、r_Pv_Norm_IN_1 和r_Pv_Norm_OUT_2、r_Pv_Norm_IN_2。sPid_Cmpt.r_Pv_Norm_OUT_2(1) REAL100.0 标定的过程值的上限根据以下两个值对将 Input_PER 转换为百分数:sPid_Cmpt 结构的r_Pv_Norm_OUT_1、r_Pv_Norm_IN_1 和r_Pv_Norm_OUT_2、r_Pv_Norm_IN_2。sPid_Cmpt.r_Lmn_Hlm(1) REAL 100.0输出参数“Output”的输出值上限sPid_Cmpt.r_Lmn_Llm(1) REAL 0.0输出参数“Output”的输出值下限sPid_Cmpt.b_Input_PER_On(1) BOOL TRUE 如果b_Input_PER_On = TRUE,则使用参数Input_PER。如果 b_Input_PER_On =FALSE,则使用参数 Input。sPid_Cmpt.b_LoadBackUp BOOL FALSE激活备份参数集。如果优化失败,可通过置位该位重新激活先前的 PID 参数。sPid_Cmpt.b_InvCtrl(1) BOOLFALSE 反转控制逻辑如果 b_InvCtrl =TRUE,则不断增大的控制偏差将导致输出值减小。sPid_Cmpt.r_Lmn_Pwm_PPTm(1) REAL 0.0脉宽调制的Zui小 ON 时间(秒)舍入为r_Lmn_Pwm_PPTm = r_Cycle 或r_Lmn_Pwm_PPTm =n*r_CyclesPid_Cmpt.r_Lmn_Pwm_PBTm(1) REAL 0.0 脉宽调制的Zui小 OFF时间(秒)舍入为r_Lmn_Pwm_PBTm = r_Cycle 或r_Lmn_Pwm_PBTm = n*r_Cycle