在博图中以S7-1200为例组态PID功能

B站影视 2025-02-09 21:58 3

摘要:在咱们平常的实际工作当中,常常会用到 PID 控制系统,像控制恒压供水的设备啦,恒温加热的设备等等。这些设备要是用 PLC 来控制,不光得编程,还得设置相关的参数(也可以说是组态)。只有把相关参数设置正确了,编写的程序才有价值。

在咱们平常的实际工作当中,常常会用到 PID 控制系统,像控制恒压供水的设备啦,恒温加热的设备等等。这些设备要是用 PLC 来控制,不光得编程,还得设置相关的参数(也可以说是组态)。只有把相关参数设置正确了,编写的程序才有价值。

那今天呢,咱们就以西门子 1200PLC 当作例子,给大伙讲讲咋组态 PID 功能。在组态之前,得先判断咋选择 PID 指令,因为根据不一样的应用场景,选择的 PID 指令也不一样,指令选得不同,组态也会有一些差别。

①PID指令选择:

S7 - 1200 的 PID 功能呢,有三条指令能让咱们选,分别是 PID_Compact、PID_3Step、PID_Temp,就像图 1 展示的那样:

▲图1 | PID指令图▲

第一步:先瞅瞅是不是要用三位执行机构,如果要用那就选择 PID_3Step 指令。

在这呢,给您解释解释三位执行机构的特点:

1、就只接收开启或者关闭这两个数字量输出控制;

2、有开到位或者关到位的限位开关输入信号,或者有模拟量反馈位置信号。就好比现场的一些电动阀门,PLC 控制电动阀门正转或者反转,这样就能控制流量、压力啥的。

PID_3Step 指令(像图 2 那样)控制两个开关量的输出,比如说一个是 1,另一个是 0,电动机可能就正转。要是一个是 0,另外一个是 1,电动机可能就反转。

▲图2 | PID_3Step指令▲

第二步:要是没使用三位执行机构,那就判断是不是多回路、串级控制,如果是,那就跳到第 3 步去判断;要是不是,那就跳到第 4 步。

第三步:判断是不是需要加热/制冷双输出(就像在空调系统里那样)。要是需要,那就调用 PID_Temp 指令,像图 3 显示的那样。

▲图3 | PID_Temp指令▲

第四步:判断是不是需要温度控制常常会用到的附加功能(比如说控制带、死区啥的),要是不需要,那就调用 PID_Compact,就像图 4 展示的那样。

图4 | PID_Compact指令▲

在这呢,给您解释解释“控制带”和“死区”这两个概念。

控制带:在温度控制这方面,有很明显的大滞后特性,就是当过程值跟设定值偏离得比较大的时候,调节过程会特别慢,而快接近设定值的时候又容易有比较大的超调。要是有上面说的这两种问题,温度控制就得保证在偏差超过一定范围的时候,输出最大或者最小的调节量,让温度值能快点回到一个比较小的范围里,这样能缩短调节时间。在设定值附近的时候,越靠近设定值,调节量就得越小,为的是防止超调。所以,控制带这个功能是这样的,当过程值比设定值大,而且偏差的绝对值超过控制带,那就把输出下限当作输出值。当过程值比设定值小,而且偏差绝对值超过控制带,那就把输出上限当作输出值。要是偏差的绝对值小于控制带,那就把实际 PID 的计算结果当作输出。

死区:在控制系统当中,执行机构要是动作太频繁,就会导致小幅震荡,造成机械磨损,好多控制系统都允许被控量在一定范围里存在误差,这个误差就叫 PID 的死区。当过程值满足下面这个公式的时候,SP–“死区宽度”<PV <SP +“死区宽度”,PID 就停止调节,保持输出不变。就像下面这个图显示的那样。

②PID_Compact指令组态

咱们拿最基本的恒压供水系统,来给大伙讲讲怎么组态(就是设置相关的参数)。得先添加循环中断,接着在循环中断里添加 PID_Compact 指令。在循环中断的属性里头,能够修改它的循环时间(就像图 5 那样)。

▲图5 | 添加循环中断后在属性界面修改其循环时间▲

在这解释一下循环时间:

PID 控制器的采样时间是循环中断时间的整数倍。要是咱们自整定 PID 参数,系统会自动算出 sRet.r_Ctrl_Cycle(采样时间)这个参数。要是用户用手动的方式设定 PID 参数,那可一定得注意这个参数得是循环中断时间的整数倍。

比如说:

PID 控制器的采样时间是 1 秒,循环中断时间是 100 毫秒,那在 1 秒的时间里,循环中断执行了 10 次,但是前面 9 次 PID 控制器都不进行运算。

(1)在“指令 > 工艺 > PID 控制 > Compact PID > PID_Compact”这个地方,把 PID_Compact 指令添加到循环中断里。就像图 6 显示的那样。

▲图6 | 在循环中断中添加PID_Compact 指令▲

(2)当把 PID_Compact 指令添加完以后,在项目树里的 > 工艺对象文件夹中,会自动关联出 PID_Compact_x[DBx],这里面包含着它的组态界面和调试功能。就像图 7 展示的那样:

▲图7 | 工艺对象中关联生成PID_Compact▲

(3)在使用 PID 控制器之前,得对它进行组态设置,这里面分成了基本设置、过程值设置、高级设置等几个部分。就像图 8 显示的那样:

▲图8 | PID_Compact> 基本设置>控制器类型▲

第一、基本设置
①基本设置–控制器类型
a、在基本设置里,要给设定值、过程值和扰动变量选择物理量和测量单位。咱们用的是恒压控制,所以选“压力”就行啦。就像图 9 显示的那样;
b、正作用就是:随着 PID 控制器的偏差变大,输出值也跟着变大。反作用就是:随着 PID 控制器的偏差变大,输出值反而变小。要是 PID_Compact 是反作用,那就可以勾选“反转控制逻辑”。就像图 9 显示的那样;
c、要是想在 CPU 重启后切换到“模式”(Mode)参数里保存的工作模式,那就勾选“在 CPU 重启后激活模式”。就像图 9 显示的那样。

▲图9 | PID_Compact> 基本设置>控制器类型▲

②基本设置--定义Input/Output 参数(如图10)

咱们来定义一下 PID 过程值和输出值的相关内容,得选 PID_Compact 输入、输出变量的引脚和数据类型。要是选了 Input,那就得在程序里标定好工程单位值,然后把标定好的工程量值填在 PID_Compact 管脚的 Input 处,Input 处管脚的值要和 Setpoint 管脚的值作比较,这样就能控制输出啦。那到底控制的是哪个输出呢?这得根据 Output 处选择的参数来定,可以是 Output_PER、Output、Output_PWM。Output_PER 就是直接通过模拟量的方式来输出,从而控制像变频器、电机这类的外部设备,最终它的输出值是在 0 - 27648 之间,接着能转换成 0 - 10V 或者 0 - 20mA,实现控制的效果。Output 是以百分比的方式输出,范围在 0 - 100 之间,如果要控制外部设备的话,还得用其他指令来转换输出。Output_PWM 是以脉宽调制的方式输出数字量。那要是 Input 处选的是 Input_PER,填的就是模拟量输入通道的地址(比如 IW64),这个地址会自动转换成工程单位,再和 Setpoint 管脚的值作比较。那它是怎么转换的呢?咱们接着往下看。

▲图10 | PID_Compact> 基本设置>定义Input/Output▲

第二、过程值设置
①过程值设置–过程值限值(如图 11)
这过程值限值得满足过程值下限小于过程值上限。要是过程值超出了限值,那就会出错。咱们设置的是 60hpa,这是因为咱们的压力传感器是 0 - 5Kpa 的,在量程里只用 hpa 这个单位。所以咱们把它转换成 hpa,而且设置的时候还留了余量。

▲图11 | 设置过程值限值▲

②过程值设置–过程值标定
a、只有在“基本设置”那一项里,Input/Output 中的输入选择是“Input_PER”的时候,才能组态过程值标定;
b、要是过程值跟模拟量输入值成正比,那就用上下限值对来标定 Input_PER;
c、一定得满足范围的下限小于上限。因为咱们在“基本设置”那一项里,Input/Output 中的输入选择是“Input”,所以图 11 里“Input_PER”这一项是“已禁用”。

图11 | 进行过程值标定▲

高级设置
①高级设置–过程值监视(如图 12 及图 13):

图12▲

a、过程值的监视限值范围得在过程值限值范围里头;
b、要是过程值超过了监视限值,就会输出警告。过程值要是超过了过程值限值,PID 输出就会报错,然后切换工作模式;

▲图13▲

②高级设置–PWM 限制,这部分在这儿就不介绍了。
③高级设置–输出值限值(如图 14)

▲图14▲

a、在“输出值的限值”这个窗口里,用百分比的形式来组态输出值的限值。不管是在手动模式,还是自动模式,都不能超过输出值的限值。
b、手动模式下的设定值 ManualValue,一定得在输出值的下限(Config.OutputLowerLimit)和输出值的上限 ( Config.OutputUpperLimit)之间。
c、要是在手动模式下指定了一个超过限值范围的输出值,那 CPU 就会把有效值限制成组态的限值。
d、PID_compact 能够通过组态界面里输出值的上限和下限来修改限值。范围最大是 -100.0 到 100.0 ,要是采用 Output_PWM 输出,限制就是 0.0 到 100.0 。

④高级设置--对错误的响应(如图15)

a、在 PID_Compact V2 的时候,可以提前设置错误响应时 PID 的输出状态,就像图 13 显示的那样。这样在出现错误的时候,控制器在大多数情况下都能保持是激活的状态。
b、要是控制器老是出现错误,建议检查 Errorbits 参数,然后把错误的原因消除掉。

▲图15▲

按照错误代码来分析错误的原因。根据组态界面设置的“对错误的响应”,不同错误的响应状态是不一样的,就像下面这个表显示的那样:

⑤高级设置–手动输入 PID 参数
a、在 PIDCompact 组态界面能够修改 PID 参数,在这儿修改的参数对应的是工艺对象背景数据块>Static>Retain> PID 参数。
b、通过组态界面修改参数得重新下载组态并且重启 PLC。建议直接对工艺对象背景数据块进行操作。

S7-1200 如何组态PID功能? PLC论坛-全力打造可编程控制器专业技术论坛 -

来源:PLC技术玩

相关推荐