功能块 FB_PID 提供了一个 PID 控制器。
下图显示了功能块 FB_PID 的引脚图:
主要算法由以下流程图表示:
主要算法的计算方法为:
虽然微分时间常量 Td=0 会禁用 PID 控制器的微分分支,但将禁止比例增益 Kp 0。这将导致增益为 100%。
设置积分时间常数 Ti=0 将切换到备用计算规则:
这将是模拟量输出信号(在范围 [0..10000] 内)居中。
测量值可以转换为参数化范围。这一新范围随后将应用于设置点,并且用于测量警报级别。
在每种情况下,输出均在 [0..10000] 范围中,但是可以进行限制。
下表描述了 TwidoEmulationSupport 库中功能块的输入变量:
输入 |
数据类型 |
描述 |
---|---|---|
i_iMeasure |
INT |
控制变量 [1..10000] |
i_iSetpoint |
INT |
控制器设置点 [1..10000] 或 [configured min..configured max] |
i_etOpMode |
ET_PidOpMode |
PID / PI - 如果是 PID,则可以由 etCorrectorType 覆盖以实现兼容性。 |
i_xMeasConversion |
BOOL |
激活从测量值转换为给定边界(从 [0..10000] 到 [i_iConversionMin..i_iConversionMax]. |
i_iConversionMin |
INT |
转换最小值。 |
i_iConversionMax |
INT |
转换最大值。 |
i_xMeasAlarm |
BOOL |
激活测量值范围警报。 |
i_iAlarmHigh |
INT |
q_iAnalogOutput 警报阈值上限。 |
i_iAlarmLow |
INT |
q_iAnalogOutput 警报阈值下限。 |
i_iKp |
INT |
比例增益系数 |
i_iTi |
INT |
积分时间常数 |
i_iTd |
INT |
微分时间常数(如果是 PI,则忽略) |
i_xDirectOutput |
BOOL |
真:顺向操作 假:逆向操作 |
i_xLimitOutput |
BOOL |
激活输出限制。 |
i_iLimitMin |
INT |
输出下限 |
i_iLimitMax |
INT |
输出上限 |
i_iPWMPeriod |
INT |
PWM 信号 |
下表描述了 TwidoEmulationSupport 库中功能块的输出变量:
输出 |
数据类型 |
描述 |
---|---|---|
q_iAnalogOutput |
INT |
控制器输出以数字化为转换模拟量 [1..10000] |
q_rDutyCycleOutput |
REAL |
减小到值可以为 PWM 模块手动分配的值 [0..1]。 |
q_xPWM |
BOOL |
软件生成的 PWM 输出 |
q_xMeasureValueLowAlarm |
BOOL |
监视控制变量。 如果低于低位警报,则设置为 1。 |
q_xMeasureValueHighAlarm |
BOOL |
监视控制变量。 如果超过高位警报,则设置为 1。 |
q_etPidDiag |
ET_PidDiag |
来自 PID 控制器的诊断代码 |
q_sMsg |
STRING |
诊断消息 |
EcoStruxure Machine Expert - Basic 中的 PID 块配置提供了额外的参数采样周期(在 PID 助手的 PID 选项卡中)。采样周期是指执行 PID 块的任务的循环时间。为帮助确保正确生成 q_xPWM 中的信号,则配置的 i_iPWMPeriod 必须是采样时间的倍数。PWM 周期 0 停用信号生成。
i_etOpMode 输入是以下其中一个类型:
i_etPidDiag 输出是以下其中一个类型: