470 likes | 812 Views
S7-300 在模拟量 闭环控制中的应用. PLC 常用控制方法: SCS : S equence C ontrol S ystem ,程序和顺序控制; MCS : M odulating C ontrol S ystem ,例如: PID 控制作为基本 MCS ; 复杂控制: 串级控制、混合控制、比值控制等; 最优控制: 现代控制理论算法实现的控制; 自适应控制: 给定值随着某种规律自动调整,使生产过程始终处于最佳工作状态; 模糊控制: 控制决策 ( 目标 ) 用模糊规则来实现。. PS 电源. CPU. 接口模板. DI. DO. AI. RTD.
E N D
PLC常用控制方法: • SCS:Sequence Control System,程序和顺序控制; • MCS:Modulating Control System,例如:PID控制作为基本MCS; • 复杂控制:串级控制、混合控制、比值控制等; • 最优控制:现代控制理论算法实现的控制; • 自适应控制:给定值随着某种规律自动调整,使生产过程始终处于最佳工作状态; • 模糊控制:控制决策(目标)用模糊规则来实现。
PS电源 CPU 接口模板 DI DO AI RTD FM AO TC ... 按钮 行程开关 接近开关 转换开关 辅助节点 …… 指示灯 接触器 继电器 电磁阀 …… 变送器 热电偶 热电阻 热电偶 热电阻 执行器 FM355 S7-300 组成的控制系统
可编程控制器 生产过程 c(t) pv(t) ev(n) mv(n) mv(t) sp(n) + 控制器 D/A 执行器 被控对象 给定值 被控量 - pv(n) 测量变送器 A/D • 8.1 模拟量闭环控制的基本概念 • 8.1.1 模拟量闭环控制系统的组成 • 1 模拟量单闭环控制系统的组成 图8-1 PLC模拟量闭环控制系统原理框图
AI AO CPU • 2 S7-300实现闭环控制的方法 • ⑴软件PID控制器: SFB41 SFB42 SFB43 SFB58 SFB59 + + + • 原理:AI(TC、RTD)模块采集过程值 ➵ 经CPU执行PID控制算法 ➵ AO(或DO)实现控制。 • 优点:节约费用,使用灵活。 • 缺点:不能独立控制,占CPU时间。
CPU AI AO F1 sp pv(t) LT LC mv(t) F2 • 举例: SFB41 SFB42 SFB43 SFB58 SFB59 + + +
⑵ 闭环控制模块 • 模块 • FM 355C: 4路模拟量连续输出 • FM 355S: 8路步进或脉冲输出 • 功能 • 可运行于自动/手动模式、安全模式、跟随模式; • 自整定温度控制算法、PID算法; • 即使CPU故障或停机,模块仍能独立工作。 • 应用 • 温度、压力、流量、液位控制。 控制算法 4AI+4AO+8DI 4AI+8DO+8DI
3 PID控制器概述 • ⑴ PID控制(Proportional Integral Differential) • PID意为比例、积分、微分,PID控制是自动控制中一种重要的常规控制方式。 • ⑵ PID控制实现的方式 • 模拟PID:控制器用模拟电路实现 • 数字PID:通过软件实现PID数字运算
8.2 数字PID控制器 • 8.2.2 PID控制器的数字化 • 1. PID控制器表达式 • 传递函数: • 其中:KP为比例系数,TI为积分时间常数,TD为微分时间常数,M为积分部分的初始值。
控制对象 - 2. PID算法的数字实现 • 数字PID主要有三种算法:位置算法、增量算法和速度算法。 • S7-300 PID功能块SFB41是位置算法。 • PID控制器的结构图如下:
由PID表达式 • 设PID控制器采样周期为Ts,对上式进行离散化处理,积分项用累加近似代替,微分项用差分近似代替,则连续系统表达式变为:
整理后得: • 式中:Ts=Δt 为采样周期 • ev(n) 、ev(n-1)为第n次和第n-1次采样时的偏差值 • mv(n) 为第n次采样时控制器的输出值 • 位置算法的特点: • 控制输出与阀门位置有一一对应关系,故称位置算法; • 每次都需计算阀位的绝对位置; • 需采用措施来防止积分饱和和手自动切换的扰动现象; • 上式中,KP、TI、TD、M分别对应SFB41的GAIN、TI、TD和I_ITLVAL。
3. 不完全微分PID • 微分项的弱点:在标准的PID算式中,当有阶跃信号输入时,微分项急剧增加,容易引起调节过程的振荡,导致调节品质下降。 • 解决:不完全微分PID算法基本思想仿照模拟调节器的实际微分调节,加入惯性环节,以克服完全微分的缺点。 • 不完全微分PID的传递函数为 • 上式中,KP、TI、TD、M意义同前,Tf惯性环节时间常数,对应SFB41的TM_LAG。
死区特性 PID 控制器 控制对象 SP B - 4. 带有死区的PID控制算法 • 在某些控制系统中,当偏差比较小时,为了避免控制动作过于频繁,以消除由此所引起的振荡给设备带来危害,可采用带死区的PID控制系统。 • 死区的PID概念:是人为地设置一个不灵敏区域B, • 当偏差 | ev(t) |≤B 时,减弱或切除控制输出 • 当偏差 | ev(t) |>B 时,正常控制输出 • 这里的死区B对应SFB41中的DEADB_W。 • 图8-3 带有死区的PID控制
8.3 S7-300的模拟量闭环控制功能 • 8.3.1 S7-300实现闭环控制的方法 • 1. FM355闭环控制模块 • S7-300闭环控制模块,用于压力、流量、液位等控制; • 内有自优化温度控制算法和PID算法; • FM355模块不受CPU影响而独立工作; • FM355有4个AI,可接热电阻、电流、电压信号; • FM355C用于连续控制器,有4个独立的AO,可组成定值、串级、比值等控制方式; • FM355S用于数字量步进或脉冲控制器,有8个DO。
2. 闭环控制系统功能块 • SFB41~SFB43:通过AI、AO(DO)模块实现PID控制。 其中: • 通过AO实现连续控制(SFB41) • 通过DO实现步进(SFB42)或脉冲控制(SFB43)。 • 3. 闭环控制软件包 • FB41~FB43用于PID控制,功能同SFB41~SFB43; • FB58和FB59用于PID温度控制; • 模糊控制、神经网络控制、PID自整定等软件包。
8.3.2 闭环控制系统功能块 • 1. 系统功能块的调用 SFB 41 用于连续控制 SFB 42 用于步进控制 SFB 43 用于脉冲宽度控制 • 调用方法如下: • 指令树→Library→Standard Library→ • System Function Blocks→插入块 • 2. 闭环控制软件包的调用 • 功能块FB41、FB42、FB43与SFB41、SFB42、SFB43兼容,调用方法如下: • 指令树→ Library→Standard Library→PID Control Blocks→插入块
3. PID控制程序的编制和采样周期的选择 • 可在FB或FC里调用系统功能块SFB41~SFB43 注: • 调用SFB41~SFB43 的FB或FC必须放在定时循环中断OB35 (OB30~OB38)中被调用。 • OB35的循环中断时间即为PID控制器的采样周期TS。 • 采样周期TS与CPU性能有关,需要根据运算速度和控制周期折衷选择。可以在CPU属性中设置。
调用系统功能块必须指定背景数据块 例如:STL:CALL SFB “CONT_C”, DB300 LAD: • 背景数据块保存了功能块的输入/输出结果,可以在PLC程序中或WINCC软件访问相应的数据。见图。
梯形图 语句表
8.4 连续PID控制器SFB41 • SFB41为连续控制器,控制输出为AO量; • 基本控制是恒值控制。例如:恒压、恒温、恒速控制等。 • 连续控制器SFB41的原理框图如图8-4所示。
SP_INT 内部浮点数给定值 PVPER_ON 比例增益 GAIN 死区 PV_NORM PV_IN 浮点数过程变量 + - 过程变量格式化 DEADBAND CRP_IN PV_R PV_FAC 输入系数 PV_OFF 输入偏差 PV_PER 外设变量 % 100/27648 ER 误差 实数 PV 过程变量 DEADB_W 死区宽度 P_SEL LMN_P 比例分量 0.0 DISV 扰动 INT I_SEL + + + + 0.0 INT_HOLD 积分保持 I_ITL_ON 积分初始化 I_ITLVAL 积分初值 + LMN_I 积分分量 1 1 1 0 DIF 1 0 0 1 0 0.0 0 LMN_D 微分分量 TD 微分时间常数 TM_LAG 微分延迟时间 D_SEL QLMN_HLM 输出超上限 LMN 控制器输出值 手动控制 MAN_ON QLMN_LLM 输出超下限 输出限幅 转换为外设输出值 输出量格式化 MAN 手动 LMNLIMIT CRP_OUT LMN_NORM LMN_LIM % 27648/100 LMN_PER 外设输出 输出限幅 LMN_HLM 输出上限值 LMN_LLM 输出下限值 LMN_FAC 输出系数 LMN_OFF 输出偏移量 图8-4 SFB41 CONT_C框图
PV_NORM DEADBAND PV_FAC 输入系数 PV_OFF 输入偏差 DEADB_W 死区宽度 PLC 生产过程 ev(n) mv(t) mv(n) + c(t) sp 控制器 D/A 执行器 被控对象 0 给定值 被控量 - pv(t) pv(n) 1 测量变送器 A/D SP_INT 内部浮点数给定值 PVPER_ON 死区 PV_IN 浮点数过程变量 + - 过程变量格式化 CRP_IN PV_R PV_PER 外设变量 % 100/27648 实数 PV 过程变量 1. 设定值的输入 SP_INT:设定值(setpoint),浮点数格式。 2. 过程变量输入格式选择 有两种输入方式: PVPER_ON=0:选择PV_IN 作输入,浮点格式的工程值 PVPER_ON=1:选择PV_PER 作输入,A/D采集的数字量
PV_NORM DEADBAND PV_FAC 输入系数 PV_OFF 输入偏差 DEADB_W 死区宽度 0 SP_INT 内部浮点数给定值 PVPER_ON 死区 1 PV_IN 浮点数过程变量 + - 过程变量格式化 CRP_IN PV_R PV_PER 外设变量 % 100/27648 实数 PV 过程变量 3. 外部设备过程变量转换为浮点数 PVPER_ON=1时PV_IN选择A/D采集的数值(字),内部需要转换为浮点数(百分数): PV_R = PV_PER ×100 / 27648 4. 外部设备过程变量的标准化 对PV_R格式化: PV_NORM 的输出 = PV_R × PV_FAC + PV_OFF PV_FAC:过程变量系数,默认值取1.0 PV_OFF:过程变量的偏移量,默认值取0.0 • PV_FAC 和 PV_OFF可用来调节过程输入的范围。 • PV:过程变量中间输出。
PV_NORM DEADBAND PV_FAC 输入系数 PV_OFF 输入偏差 DEADB_W 死区宽度 0 SP_INT 内部浮点数给定值 PVPER_ON 死区 1 PV_IN 浮点数过程变量 + - 过程变量格式化 CRP_IN PV_R PV_PER 外设变量 % 100/27648 实数 PV 过程变量 8.4.2 PID控制算法 1. 误差的计算与处理 误差 = SP_INT - PV➟ 死区处理➟ ER(Error,中间输出变量),死区带由DEADB_W确定。
P_SEL DISV 扰动 LMN_P 比例分量 比例增益 GAIN 0.0 INT I_SEL + + + + 0.0 1 1 INT_HOLD 积分保持 I_ITL_ON 积分初始化 I_ITLVAL 积分初值 + LMN_I 积分分量 0 0 ER 误差 DIF 1 0.0 0 LMN_D 微分分量 TD 微分时间常数 TM_LAG 微分延迟时间 D_SEL • 2. 控制器的结构 • 数字PID算式: • 对应PID结构图,其中: GAIN、TI、TD分别对应KP、TI、TD TM_LAG:惯性环节时间常数
P_SEL DISV 扰动 LMN_P 比例分量 比例增益 GAIN 0.0 INT I_SEL + + + + 0.0 1 1 INT_HOLD 积分保持 I_ITL_ON 积分初始化 I_ITLVAL 积分初值 + LMN_I 积分分量 0 0 ER 误差 DIF 1 0.0 0 LMN_D 微分分量 TD 微分时间常数 TM_LAG 微分延迟时间 D_SEL P_SEL、I_SEL、D_SEL:P、I、D投/切选择 LNM_P、LNM_I、LNM_D:P、I、D分量的输出 DISV:Disturbance,扰动量,可实现前馈控制 3. 积分器的初始值 COM_RST=1,执行完全重新起动,初始值为I_ITLVAL INT_HOLD=1,积分保持,积分输出被冻结
1 0 QLMN_HLM 输出超上限 LMN 控制器输出值 手动控制 MAN_ON QLMN_LLM 输出超下限 输出限幅 转换为外设输出值 输出量格式化 MAN 手动 LMNLIMIT CRP_OUT LMN_NORM LMN_LIM % 27648/100 LMN_PER 外设输出 输出限幅 LMN_HLM 输出上限值 LMN_LLM 输出下限值 LMN_FAC 输出系数 LMN_OFF 输出偏移量 8.4.3 控制器输出值的处理 • 1. 手动模式 • MAN_ON:=1为手动调节,=0为自动调节 • 2. 输出限幅 • LMN_HLM、LMN_LLM:控制器输出上限和下限设定值 • QLMN_HLM、QLMN_LLM:控制器输出超上限或超下限的状态输出
1 0 QLMN_HLM 输出超上限 LMN 控制器输出值 手动控制 MAN_ON QLMN_LLM 输出超下限 输出限幅 转换为外设输出值 输出量格式化 MAN 手动 LMNLIMIT CRP_OUT LMN_NORM LMN_LIM % 27648/100 LMN_PER 外设输出 输出限幅 LMN_HLM 输出上限值 LMN_LLM 输出下限值 LMN_FAC 输出系数 LMN_OFF 输出偏移量 3. 输出量的格式化 • 对限幅后的输出LMN_LIM格式化: LMN = LMN_LIM × LMN_FAC + LMN_OFF • 其中: LMN:控制器浮点格式输出 LMN_FAC:输出量系数,默认值取1.0 LMN_OFF:输出量的偏移量,默认值取0.0 • 4. 输出量转换为外设格式 • 把浮点格式的控制量转换成数字量: LMN_PER = LMN × 27648 / 100
SP_INT 内部浮点数给定值 PVPER_ON 比例增益 GAIN 死区 PV_NORM PV_IN 浮点数过程变量 + - 过程变量格式化 DEADBAND CRP_IN PV_R PV_FAC 输入系数 PV_OFF 输入偏差 PV_PER 外设变量 % 100/27648 ER 误差 实数 PV 过程变量 DEADB_W 死区宽度 P_SEL LMN_P 比例分量 0.0 DISV 扰动 INT I_SEL + + + + 0.0 INT_HOLD 积分保持 I_ITL_ON 积分初始化 I_ITLVAL 积分初值 + LMN_I 积分分量 1 1 1 0 DIF 1 0 0 1 0 0.0 0 LMN_D 微分分量 TD 微分时间常数 TM_LAG 微分延迟时间 D_SEL QLMN_HLM 输出超上限 LMN 控制器输出值 手动控制 MAN_ON QLMN_LLM 输出超下限 输出限幅 转换为外设输出值 输出量格式化 MAN 手动 LMNLIMIT CRP_OUT LMN_NORM LMN_LIM % 27648/100 LMN_PER 外设输出 输出限幅 LMN_HLM 输出上限值 LMN_LLM 输出下限值 LMN_FAC 输出系数 LMN_OFF 输出偏移量 图10-4 SFB41 CONT_C框图
8.4.4 连续PID控制器SFB41编程 1. A/D采集 直接读取A/D转换值:例如PIW725 2. 标度变换 调用FC105(Scale Convert)进行标度变换 调用FC106(Unscale Convert)反变换 3. 过程变量的输入 ⑴ 把A/D采集值输入到 PV_VER ⑵ 经FC105换算后输入到 PV_IN 4. D/A输出 直接控制器输出 LMN_PER 送到D/A模块,例如PQW725
• SFB41 (连续控制)的输出参数 具体控制时,需要把上述参数输入相应的数据块。 • 连续控制软件包(FB41)的参数,与上述参数相同。
8.4.5 闭环控制模块FM355的使用 • ⑴ 硬件安装与接线 • FM355 模块可以安装于S7-300 的中央机架,也可以安装于分步式I/O的ET200M 中; • 在分步式I/O中安装FM355 模块时,ET200M 中最多可以插入一个模块(4个PID 回路); • S7-300CPU中央机架通常可以连接8个模块(可查看CPU技术规范); • 前连接器分左右两个20针接线端子。
FM355C可接4个AI作为反馈值、4个AO作用于执行器、8 个DI用于回路参数选择; • FM355S可接4个AI作为反馈值、8个DO作用于执行机构(每个回路最多2个输出,如温度控制器中一个作为加热输出,一个作为冷却输出)、8 个DI用于回路参数选择; • 模块的AI输入端可接入的信号: • 电压: • 电流:可接入2线和4线制变送器(接外部50Ω电阻) • 热电偶:可选内部、外部(占第3通道)冷端补偿 • 热电阻:恒流测量
⑵ 系统组态及参数设置 • 硬件配置; • 安装FM355附带有参数化软件包(STEP7 为平台); • 在STEP7 硬件配置中对FM355 模块进行参数化;
⑶ 利用安装后的七个函数进行编程: • PID_FM(FB31):主函数块,设定大多数参数值,读取反馈值; • FUZ_355(FB32):读取模块对温度优化算法后的结果; • FORCE_355(FB34):仿真(强制)模拟和数字量输入; • READ_355(FB36):CPU读取模块的模拟和数字量输入; • CH_DIAG:读出通道的状态值和一些PID的中间值,用于对过程的判断。 • PID_PAR(FB39):对“PID_FM”函数块不能操作的参数进行操作; • CJ_T_PAR(FB40): 在线更改内部补偿的温度值。
⑷ PID参数 •比例项:名称 数据类型 默认值 功能 • P_SEL BOOL TRUE 比例项使能控制 • GAIN REAL 2.0 放大倍数 • •积分项:名称 数据类型 默认值 功能 • I_SEL BOOL TRUE 积分项使能控制 • TI TIME T#20S 积分时间 • INT_HOLD BOOL FALSE 积分输出保持控制 • I_ITL_ON BOOL - 积分输出再输入允许 • I_ITLVAL REAL 0.0 积分初值 • •微分项:名称 数据类型 默认值 功能 • D_SEL BOOL TRUE 微分项使能控制 • TD TIME T#10S 微分时间 • TM_LAG TIME T#2S 微分滞后时间 • •过程参数 … … …
⑸模板初始化功能(SFC块) • • SFC 50: 名称 功能 • WR_PARM 将动态参数写入模板 • • SFC 56: 名称 功能 • WR_DPARM 将预定参数写入模板 • • SFC 57: 名称 功能 • PARM_MOD 赋模板的参数 • • SFC 58 名称 功能 • WR_REC 写模板专用的数据记录 • • SFC 59 名称 功能 • RD_REC 读模板专用的数据记录 • ⑹模板初始化功能的调用 • 例:调用SFC 50 CALL “RD_LGADR" • … ‘SFC 50 的形参