![](https://csdnimg.cn/release/download_crawler_static/32257531/bg1.jpg)
PID 回路控制的原理与调试
2007-05-13 10:21 P.M.
1. 引言
在上篇文章中,我们着重介绍了西门子 CPU222的系统配置及变频调速的工
作原理 http://gongkong.com/tech/example/include/4569.asp ,因此在本章中
将重点介绍如何使用西门子 CPU222的 PID 回路控制。
2. PID 控制概述
西门子 S7-200 系列 PLC能够进行 PID 控制,其 CPU最多可支持 8 个 PID 控
制回路。 PID 是闭环控制系统中比例 - 积分- 微分控制算法,它可以看作是这三项
之和,根据设定值与被控对象实际值的差值, 按 PID 方式计算出控制输出量, 使
反馈跟随设定值变化, 因此 PID 控制是负反馈闭环控制。 其中比例项是增益 (Kc)
与偏差的乘积,积分项与偏差的和成正比,而微分项与偏差的变化成正比。
PID 控制功能是通过 PID 指令功能块实现的。 在 S7-200 中,PID 回路指令运
用回路表中的输入信息和组态信息,进行 PID 运算,交换数据,编程极其简便,
该指令影响特殊存储器标志位 SM1.1 ( 溢出 ) 。只有在逻辑堆栈栈顶值为 1 时,
才能进行 PID 运算。本指令有两个操作数: TBL和 LOOP(如下图所示)。其中
TBL 是回路表的起始地址,操作数
限用 VB区,数据类型是 BYTE型; LOOP 是回路号可以是 0 到 7 的整数,
因此在程序中最多可以用 8 条 PID 指令。如果有两个或两个以上的 PID 指令
用了同一个回路号,即使这些指令的回路表不同,那么这些 PID 运算之间也会
产生不可预料的结果。在直接使用 PID 指令功能块之前,必须把增益( Kc)、
采样时间( Ts)、积分时间( Ti )、微分时间( Td)等等这些实数全部转换成
0.0-1.0 之间的实数, 以便 PID 指令功能块接受, 也就是说把外界实际物理量转
换成 PID 指令可以接收的数据,即输入 / 输出的转换与标准化处理。
3. PID 控制编程调试
在本套系统中,为了生产需求,锅炉内蒸汽压力应维持在 0.85-1.0MPa 之间,
压力的大小由压力变送器检测,变送器压力量程 0-2.5MPa,输出 DC4-20mA。因
此在 0.85MPa时,相应的电流输出是 9.44Ma,同样 1.0MPa时输出为 10.4mA,其
标准化刻度值如下图所示。