FB_PID:PID 功能块

概述

功能块 FB_PID 提供了一个 PID 控制器。

下图显示了功能块 FB_PID 的引脚图:

G-SE-0033412.1.jpg

 

 

主要算法由以下流程图表示:

G-SE-0032380.1.gif-high.gif

 

 

主要算法的计算方法为:

G-SE-0032381.1.gif-high.gif

 

 

虽然微分时间常量 Td=0 会禁用 PID 控制器的微分分支,但将禁止比例增益 Kp 0。这将导致增益为 100%。

设置积分时间常数 Ti=0 将切换到备用计算规则:

G-SE-0032382.1.gif-high.gif

 

 

这将是模拟量输出信号(在范围 [0..10000] 内)居中。

测量值可以转换为参数化范围。这一新范围随后将应用于设置点,并且用于测量警报级别。

在每种情况下,输出均在 [0..10000] 范围中,但是可以进行限制。

I/O 变量描述

下表描述了 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 输入是以下其中一个类型:

G-SE-0032386.1.gif-high.gif

 

 

i_etPidDiag 输出是以下其中一个类型:

G-SE-0032387.1.gif-high.gif