ActivateRecoverMode 变量确定在自动模式和手动模式下发生错误时的特性。ActivateRecoverMode 在预调节、jingque调节和转换时间测量过程中不生效。 ActivateRecoverMode 说明 FALSE 出现错误时,PID_3Step 将切换到“未激活”工作模式或“逼近替代输出值”工作模式。 将通过复位或更改 Retain.Mode 值来激活控制器。 TRUE 自动模式下的错误如果在自动模式下频繁发生错误,则该设置会对控制响应产生负面影响。这种情况下,检查 ErrorBits 参数并消除错误原因。如果发生一个或更多错误,PID_3Step 将切换到“在监视错误的同时逼近替代输出值”模式或 “错误监视”模式: • 0002h:参数Input_PER 的值无效。 • 0200h:参数 Input 的值无效。 • 0800h:采样时间错误 • 1000h:参数Setpoint 的值无效。 • 2000h:参数 Feedback_PER 的值无效。 • 4000h:参数 Feedback的值无效。 • 8000h: 数字位置反馈出现错误。 出现 2000h、4000h 和 8000h 错误时,PID_3Step不能逼近组态的替代输出值。 当错误不再处于未决状态时,PID_3Step 切换回自动模式。 手动模式下的错误如果发生一个或更多下列错误,则 PID_3Step 停留在手动模式下: • 0002h:参数 Input_PER 的值无效。 •0200h:参数 Input 的值无效。 • 0800h:采样时间错误 • 1000h:参数 Setpoint 的值无效。 •2000h:参数 Feedback_PER 的值无效。 • 4000h:参数 Feedback 的值无效。 • 8000h:数字位置反馈出现错误。 出现 2000h、4000h 和 8000h 错误时,不能将阀门移动到合适的位置。
变量 Warning V1(S7-1200) 如果多个警告同时处于待决状态,将通过二进制加法显示它们的值。 例如,显示警告 0003 表示警告 0001 和0002 同时处于待决状态。 Warning (DW#16#...) 说明 0000 无警告处于待决状态。 0001预调节期间未发现拐点。 0002 jingque调节期间振荡增加。 0004 设定值被限制为组态的限值。 0008在所选计算方法中未定义所有必要的受控系统属性。因此,使用 TuneRuleTIR = 3 方法计算 PID 参数。 0010 由于ManualEnable = TRUE,无法更改工作模式。 0020 调用 OB 的循环时间会限制 PID算法的采样时间。 通过缩短 OB 循环时间来改进结果。 0040 过程值超出其警告限值之一。 0080 Retain.Mode的值无效。 工作模式不变。 0100 手动值被限制为控制器输出的限值。 0200 用于调节的规则产生错误结果,或不受支持。 0400为转换时间测量所选择的方法不适用于执行器。 由于执行器设置与所选的测量方法不匹配,无法测量转换时间。 0800当前位置与新输出值之差太小,无法用于转换时间测量。 这可能产生错误结果。 当前输出 值与新输出值之差必须至少是整个控制范围的 50%。1000 无法达到替代输出值,因为它超出了输出值限值。变量 SUT.State V1 (S7-1200) SUT.Sta te 名称说明 0 SUT_INIT 初始化预调节 50 SUT_TPDN 确定无位置反馈时的起始位置 100 SUT_STDABW计算标准偏差 200 SUT_GET_POI 查找拐点 300 SUT_GET_RISETM 确定上升时间 9900 SUT_IO预调节成功 1 SUT_NIO 预调节未成功 变量 TIR.State V1 (S7-1200) TIR.Stat e 名称 说明-100 TIR_FIRST_SUT 无法进行jingque调节。 将首先执行预调节。 0 TIR_INIT 初始化jingque调节200 TIR_STDABW 计算标准偏差 300 TIR_RUN_IN 尝试利用Zui大或Zui小输出值达到设定值 400TIR_CTRLN 尝试使用现有 PID 参数达到设定值 (如果预调节已成功) 500 TIR_OSZIL 确定波动并计算参数9900 TIR_IO jingque调节成功 1 TIR_NIO jingque调节未成功。PID_Temp (S7-1200,S7-1500) PID_Temp 的新特性 (S7-1200, S7-1500) PID_Temp V1.1 •从“未激活”工作模式切换到“自动模式”时输出值的响应 添加了新选项 IntegralResetMode =4,并将其定义为默认设置。如果 IntegralResetMode =4,从“未激活”工作模式切换到“自动模式”时会自动预分配积分作用,以便控制偏 差导致带有相同符号的 PID 输出值发生跳变。 •自动模式下积分作用的初始化 可以通过变量 OverwriteInitialOutputValue 和 PIDCtrl.PIDInit在自动模式下对积分作用进 行初始化。这简化了使用 PID_Temp 进行超驰控制的过程。 与 CPU 和 FW 的兼容性(S7-1200, S7-1500) 下表显示了 PID_Temp 的每个版本可用于哪种 CPU。PID_Temp (S7-1200,S7-1500) PID_Temp 说明 (S7-1200, S7-1500) 描述 PID_Temp指令提供了一种可对温度过程进行集成调节的 PID 控制器。PID_Temp 可用于纯加 热或加热/制冷应用。 存在下列工作模式: •未激活 • 预调节 • jingque调节 • 自动模式 • 手动模式 • 含错误监视功能的替代输出值 有关工作模式的详细信息,请参见State 参数。调用 在周期中断 OB 的恒定时间范围内调用 PID_Temp。 下载到设备 仅当完整下载 PID_Temp后,才能更新保持性变量的过程值。 将工艺对象下载到设备 启动 CPU 启动时,PID_Temp 以保存在 Mode输入/输出参数中的工作模式启动。要在启动期间切 换到“未激活”工作模式,应设置RunModeByStartup = FALSE。出现错误时的响应 发生错误时的响应由变量SetSubstituteOutput 和 ActivateRecoverMode 决定。如果 ActivateRecoverMode= TRUE,则行为还取决于所发生的错误。 SetSubstitute Output ActivateRe coverMode组态编辑器 > 输出的基本设置 > 将 PidOutputSum 设置为 响应 不相关 FALSE 零(未激活)切换到“未激活”(State = 0) 模式 PID 算法的输出值以及所有加热和制冷输出均 设置为0。加热和制冷输出的标定未激活。 FALSE TRUE 发生错误时(错误未决时)的当 前值 切换到“含错误监视功能的替代输出值”模 式(State = 5) 当错误未决时,当前输出值会传送到执行器。 TRUE TRUE 错误未决时的替代输出值切换到“含错误监视功能的替代输出值”模 式 (State = 5) 当错误未决时,SubstituteOutput中的值会 传送到执行器。 在手动模式下,PID_Temp 使用 ManualValue 作为输出值,除非 ManualValue无效。 • 如果 ManualValue 无效,将使用 SubstituteOutput。 • 如果 ManualValue 和SubstituteOutput 无效,将使用 Config.Output.Heat.PidLowerLimit。 Error参数指示是否存在错误处于未决状态。当错误不再处于未决状态时,Error = FALSE。 ErrorBits参数显示了已发生的错误。通过 Reset 或 ErrorAck 的上升沿来复位 ErrorBits。 PID_Temp 的工作模式(S7-1200, S7-1500) 监视过程值的限值 在 Config.InputUpperLimit 和Config.InputLowerLimit 变量中指定过程值的上限和下限。如 果过程值超出这些限值,将出现错误(ErrorBits = 0000001h)。 在 Config.InputUpperWarning 和Config.InputLowerWarning 变量中指定过程值的警告上限 和警告下限。如果过程值超出这些警告限值,将发生警告(Warning = 0000040h),并且 InputWarning_H 或 InputWarning_L输出参数会更改为 TRUE。限制设定值 在 Config.SetpointUpperLimit 变量和Config.SetpointLowerLimit 变量中指定设定值的上限 和下限。PID_Temp会将设定值自动限制在过程值限值内。用户可以将设定值限制在更小范 围内。PID_Temp会检查该范围是否处于过程值限值内。如果设定值超出这些限值,上限和 下限将用作设定值,并且输出参数 SetpointLimit_H 或SetpointLimit_L 将设置为 TRUE。 在所有操作模式下均限制设定值。 替代设定值 用户可以在SubstituteSetpoint 变量中指定替代设定值并通过 SubstituteSetpointOn = TRUE将其激活。例如,通过这种方式可以直接为级联中的从控制器暂时指定设定值,而无需更改 用户程序。为设定值设置的限值也适用于替代设定值。加热和制冷 默认设置下,PID_Temp 仅使用加热输出(OutputHeat、OutputHeat_PWM、OutputHeat_PER)。PID 算法的输出值 (PidOutputSum) 经过标定在加热输出中输出。如果 要计算OutputHeat_PWM 或 OutputHeat_PER,需通过 Config.Output.Heat.Select 进行指定。始终会计算 OutputHeat。 还可以通过 Config.ActivateCooling = TRUE 激活制冷输出(OutputCool, OutputCool_PWM, OutputCool_PER)。PID 算法的正输出值(PidOutputSum) 将在标定后在加热输出中输出。PID 算法的负输出值则在标定后在制冷输出中输出。如果要计算OutputCool_PWM 或 OutputCool_PER,需通过 Config.Output.Cool.Select进行指定。始终会计算 OutputCool。 可通过两种方法计算已激活制冷的 PID 输出值: • 制冷系数(Config.AdvancedCooling = FALSE): 通过控制加热过程的 PID 参数并考虑可组态的制冷系数Config.CoolFactor 来计算用于制 冷的输出值。此方法适用于加热执行器和制冷执行器的时间响应相似但增益不同的情况。选择该方法时,无法对制冷进行预调节和jingque调节并且控制制冷的 PID 参数集不可用。只 能执行加热调节。 • PID 参数切换(Config.AdvancedCooling = TRUE): 通过单独的 PID 参数集来计算制冷的输出值。PID算法将根据计算出的输出值和控制偏差 确定使用加热过程还是制冷过程的 PID 参数。此方法适用于加热执行器和制冷执行器的时间响应和增益都不同的情况。仅在选择该方法后才可对制冷进行预调节和jingque调节。