Categories: 学习经验

西门子PID功能块FB43(PULSEGEN)基本功能

FB43(PULSEGEN)

FB43 “PULSEGEN”用于构造一个PID控制器,以生成脉冲输出,用于比例执行器。还可以配置带有脉宽调制的两步或三步PID控制器,通常与FB41一起使用。

图1. FB41"CONT_C" 与FB43 “PULSEGEN”

主要参数

图2. FB43 “PULSEGEN" 程序块

注:以TIA Potal V13 SP1为例,该功能块在STEP 7中的管脚与其相同

表1. FB43 “PULSEGEN" 的输入参数

参数 变量类型 数据类型 取值范围 默认 描述 应用
INV IN REAL -100~100(%) 0.0 模拟量输入 上一级PID (FB41) 输出
PER_TM IN TIME T#1s 脉冲周期 上一级PID (FB41) 周期
P_B_TM IN TIME T#50 ms 最小脉冲开/关时间 防止执行器频繁开关
RATIOFAC IN REAL 0.1~10.0 1.0 比率因子 改变正负脉冲宽度之比
STEP3_ON IN BOOL TRUE 三步控制 激活三步控制,两个脉冲输出都在激活状态
ST2BI_ON IN BOOL FALSE 两步控制
MAN_ON IN BOOL FALSE 手/自动切换按钮 MAN_ON:
0:自动
1:手动
POS_P_ON IN BOOL FALSE QPOS_P手动输出
NEG_P_ON IN BOOL FALSE QNEG_P手动输出
SYS_ON IN BOOL TRUE 周期同步 MAN_ON:
0:不同步
1:同步
COM_RST IN BOOL FALSE 完全重启动
CYCLE IN TIME T#10ms 采样时间 FB43 采样时间与调用组织块相同

表2. FB43 “PULSEGEN" 的输出参数

参数 变量类型 数据类型 取值范围 默认 描述 说明
QPOS_P OUT BOOL FALSE 正向脉冲
QNEG_P OUT BOOL FALSE 负向脉冲

表3. FB43 “PULSEGEN" 的静态变量

参数 变量类型 数据类型 取值范围 默认 描述 说明
siZaehlPer STATS INT 0 总脉冲数 一个脉冲周期内的脉冲个数,倒数计数
siZaehlPTm STATS INT 0 实际高电平脉冲数 一个脉冲周期内的实际高电平脉冲个数,倒数计数

FB43 “PULSEGEN" 的工作模式

脉宽调制

在每个周期持续时间内,脉冲的持续时间和输入变量成比例。 通过 PER_TM 分配的周期与 PULSEGEN 指令的处理周期不同。 相反,PER_TM 周期由 PULSEGEN 指令的多个处理周期组成,因此每个 PER_TM 周期中 PULSEGEN 调用的次数决定了脉冲宽度的精度。

图3. FB43 “PULSEGEN" 脉宽调制

调节值的精度

由上图可见:

“采样比率”为 1:10(CONT_C 调用与 PULSEGEN 调用之比)时,此示例中的调节值精度将限制为 10%,换言之,只能在输出 QPOS_P 以 10% 为步长的脉冲持续时间对设置的输入值 INV 进行模拟。

精度将随每次 CONT_C 调用中 PULSEGEN 调用的次数的增加而提高。

例如,如果调用 PULSEGEN 的频率是调用 CONT_C 频率的 100 倍,则获得的操作值范围的精度为 1%。

自动同步

可以使脉冲输出与更新输入变量 INV 的指令(例如 CONT_C)自动同步。 这样可以确保尽快将输入变量的变化输出为脉冲。

脉冲执行器以对应周期持续时间 PER_TM 的时间间隔评估输入值 INV,并将该值转换成相应长度的脉冲信号。

由于通常以较慢的循环中断等级计算 INV,因此在 INV 更新之后,脉冲执行器应尽快开始将离散值转换为脉冲信号。

为此,块可以使用以下步骤来与周期的起始点同步:

如果 INV 发生变化,且块调用不在周期的第一个或最后两个调用循环中,则执行同步。 脉冲持续时间将重新计算,并在下一个循环与新周期一起输出。

图4. FB43 “PULSEGEN" 自动同步

如果 SYN_ON = FALSE,自动同步将关闭。

最新文章