直播课堂
HOME
直播课堂
正文内容
plc编程pid控制流量 【步骤详解】西门子 PLC PID组态设置及PID常见问题解答
发布时间 : 2025-03-15
作者 : 小编
访问数量 : 23
扫码分享至微信

【步骤详解】西门子 PLC PID组态设置及PID常见问题解答

本文作者:技成徐陈爽

01 PID控制知识讲解

S7-200 SMART能够进行PID控制。S7-200 SMART CPU最多可以支持8个PID控制回路(8个PID指令功能块)

PID是闭环控制系统的(比例-积分-微分)

PID控制器根据设定值(给定)与被控对象的实际值(反馈)的差值,按照PID算法计算出控制器的输出量,控制执行机构去影响被控对象的变化。

PID控制是负反馈闭环控制,能够抑制系统闭环内的各种因素所引起的扰动,使反馈跟随给定变化。

根据具体项目的控制要求,在实际应用中有可能用到其中的一部分,比如常用的是PI(比例-积分)控制,这时没有微分控制部分。

PID算法在S7-200 SMART中的实现

PID控制最初在模拟量控制系统中实现,随着离散控制理论的发展,PID也在计算机化控制系统中实现。

02 PID向导组态设置

Micro/WIN SMART提供了PID Wizard(PID指令向导),可以帮助用户方便地生成一个闭环控制过程的PID算法。此向导可以完成绝大多数PID运算的自动编程,用户只需在主程序中调用PID向导生成的子程序,就可以完成PID控制任务。

PID向导既可以生成模拟量输出PID控制算法,也支持开关量输出;既支持连续自动调节,也支持手动参与控制。建议用户使用此向导对PID编程,以避免不必要的错误。

PID向导编程组态步骤:

1.在Micro/WIN SMART中的工具菜单中选择PID向导:

图1. 在工具栏中选择PID向导

图2.在项目树中打开'向导'文件夹,然后双击'PID',或选择'PID'并按回车键。

定义需要配置的PID回路号

图3.在此对话框中选择要组态的回路?

图4.最多可组态 8 个回路。在此对话框上选择回路时,PID 向导左侧的树视图随组态该回路所需的所有节点一起更新。

2.为回路组态命名

图5.可为回路组态自定义名称。此部分的默认名称是'回路 x',其中'x'等于回路编号

3.设定PID回路参数

图6.设置PID参数中定义了PID回路参数,这些参数都应当是实数:

增益:即比例常数,默认值=1.00。

1积分时间:如果不想要积分作用可以将该值设置很大(比如10000.0),默认值=10.00。

2微分时间:如果不想要微分回路,可以把微分时间设为0 ,默认值=0.00。

3采样时间:是PID控制回路对反馈采样和重新计算输出值的时间间隔,,默认值=1.00。在向导完成后,若想要修改此数,则必须返回向导中修改,不可在程序中或状态表中修改。

注意:关于具体的PID参数值,每一个项目都不一样,需要现场调试来定,没有所谓经验参数。

4.设定回路过程变量

图7. 设定PID输入过程变量

指定回路过程变量 (PV) 如何标定。可以从以下选项中选择:

1.单极性:即输入的信号为正,如0-10V或0-20mA等

2.双极性:输入信号在从负到正的范围内变化。如输入信号为±10V、±5V等时选用

3.选用20%偏移:如果输入为4-20mA则选单极性及此项,4mA是0-20mA信号的20%,所以选20% 偏移,即4mA对应5530,20mA对应27648。

4.温度 x 10 °C

5温度 x 10 °F

反馈输入取值范围

1在a.设置为单极时,缺省值为0 - 27648,对应输入量程范围0 - 10V或0 - 20mA等,输入信号为正

2在a.设置为双极时,缺省的取值为-27648 - +27648,对应的输入范围根据量程不同可以是±10V、±5V等

3在a.选中20% 偏移量时,取值范围为5530 - 27648,不可改变

在'标定'(Scaling) 参数中,指定回路设定值 (SP) 如何标定。默认值是 0.0 和 100.0 之间的一个实数。此反馈输入也可以是工程单位数值,参见:设置给定-反馈的量程范围。

5.设定输入回路输出选项

图8. 设定PID输出选项

1输出类型可以选择模拟量输出或数字量输出。模拟量输出用来控制一些需要模拟量给定的设备,如比例阀、变频器等;数字量输出实际上是控制输出点的通、断状态按照一定的占空比变化,可以控制固态继电器(加热棒等)

选择模拟量则需设定回路输出变量值的范围,可以选择:

1. 单极:单极性输出,可为0-10V或0-20mA等

2. 双极:双极性输出,可为正负10V或正负5V等

3. 单极20% 偏移量:如果选中20% 偏移,使输出为4 - 20mA

4. 取值范围:

0. c为单极时,缺省值为 0 到 27648

0. c为双极时,取值-27648 到27648

0. c为20%偏移量时,取值5530 - 27648 ,不可改变

如果选择了开关量输出,需要设定此循环周期

图9. 设定PID输出为数字量

6.设定回路报警选项

图10. 设定回路报警限幅值

向导提供了三个输出来反映过程值(PV)的低值报警、高值报警及过程值模拟量模块错误状态。当报警条件满足时,输出置位为1。这些功能在选中了相应的选择框之后起作用。

1. 使能低值报警并设定过程值(PV)报警的低值,此值为过程值的百分数,缺省值为0.10,即报警的低值为过程值的10%。此值最低可设为0.01,即满量程的1%

2. 使能高值报警并设定过程值(PV)报警的高值,此值为过程值的百分数,缺省值为0.90,即报警的高值为过程值的90%。此值最高可设为1.00,即满量程的100%

3. 使能过程值(PV)模拟量模块错误报警并设定模块于CPU连接时所处的模块位置。'EM0'就是第一个扩展模块的位置

7.定义向导所生成的PID初始化子程序和中断程序名及手/自动模式

图11. 指定子程序、中断服务程序名和选择手动控制

向导已经为初始化子程序和中断子程序定义了缺省名,你也可以修改成自己起的名字。

1. 指定PID初始化子程序的名字。

2. 指定PID中断子程序的名字注意:

1. 如果你的项目中已经存在一个PID配置,则中断程序名为只读,不可更改。因为一个项目中所有PID共用一个中断程序,它的名字不会被任何新的PID所更改。

2. PID向导中断用的是SMB34定时中断,在用户使用了PID向导后,注意在其它编程时不要再用此中断,也不要向SMB34中写入新的数值,否则PID将停止工作。

3. 此处可以选择添加PID 手动控制模式。在PID手动控制模式下,回路输出由手动输出设定控制,此时需要写入手动控制输出参数一个0.0-1.0的实数,代表输出的0%-100%而不是直接去改变输出值。PID控制的自动/手动之间的无扰动切换

8.指定PID运算数据存储区

图12. 分配运算数据存储区

PID指令(功能块)使用了一个120个字节的V区参数表来进行控制回路的运算工作;除此之外,PID向导生成的输入/输出量的标准化程序也需要运算数据存储区。需要为它们定义一个起始地址,要保证该地址起始的若干字节在程序的其它地方没有被重复使用。如果点击'建议',则向导将自动为你设定当前程序中没有用过的V区地址。

自动分配的地址只是在执行PID向导时编译检测到空闲地址。向导将自动为该参数表分配符号名,用户不要再自己为这些参数分配符号名,否则将导致PID控制不执行。

9.生成PID子程序、中断程序及符号表等

一旦点击完成按钮,将在你的项目中生成上述PID子程序、中断程序及符号表等。

图13. 生成PID子程序、中断程序和符号表等

10.配置完PID向导,需要在程序中调用向导生成的PID子程序程

图14. PID子程序

调用PID子程序

在用户程序中调用PID子程序时,可在指令树的程序块中用鼠标双击由向导生成的PID子程序,在局部变量表中,可以看到有关形式参数的解释和取值范围。

1. 必须用SM0.0来使能 PIDx_CTRL 子程序,SM0.0 后不能串联任何其他条件,而且也不能有越过它的跳转;如果在子程序中调用 PIDx_CTRL 子程序,则调用它的子程序也必须仅使用 SM0.0 调用,以保证它的正常运行

2. 此处输入过程值(反馈)的模拟量输入地址

3. 此处输入设定值变量地址(VDxx),或者直接输入设定值常数,根据向导中的设定0.0-100.0,此处应输入一个0.0-100.0的实数,例:若输入20,即为过程值的20%,假设过程值AIW0是量程为0-200度的温度值,则此处的设定值20代表40度(即200度的20%);如果在向导中设定给定范围为0.0 - 200.0,则此处的20相当于20度

4. 此处用I0.0控制PID的手/自动方式,当I0.0为1时,为自动,经过PID运算从AQW0输出;当I0.0为0时,PID将停止计算,AQW0输出为ManualOutput(VD4)中的设定值,此时不要另外编程或直接给AQW0赋值。若在向导中没有选择PID手动功能,则此项不会出现

5. 定义PID手动状态下的输出,从AQW0输出一个满值范围内对应此值的输出量。此处可输入手动设定值的变量地址(VDxx),或直接输入数。数值范围为0.0-1.0之间的一个实数,代表输出范围的百分比。例:如输入0.5,则设定为输出的50%。若在向导中没有选择PID手动功能,则此项不会出现

6. 此处键入控制量的输出地址

7. 当高报警条件满足时,相应的输出置位为1,若在向导中没有使能高报警功能,则此项将不会出现

8. 当低报警条件满足时,相应的输出置位为1,若在向导中没有使能低报警功能,则此项将不会出现

9. 当模块出错时,相应的输出置位为1,若在向导中没有使能模块错误报警功能,则此项将不会出现

调用PID子程序时,不用考虑中断程序。子程序会自动初始化相关的定时中断处理事项,然后中断程序会自动执行。

11.实际运行并调试PID参数

没有一个PID项目的参数不需要修改而能直接运行,因此需要在实际运行时调试PID参数。

查看数据块以及符号表相应的PID符号标签的内容,可以找到包括PID核心指令所用的控制回路表,包括比例系数、积分时间等等。将此表的地址复制到状态表中,可以在监控模式下在线修改PID参数,而不必停机再次做配置。

参数调试合适后,用户可以在数据块中写入,也可以再做一次向导,或者编程向相应的数据区传送参数。

03 PID组态设置中常问问题

做完PID向导后,如何知道向导中设定值,过程值及PID等参数所用的地址?

做完PID向导后可在符号表中,查看PID向导所生成的符号表(上例中为PID0_SYM),可看到各参数所用的详细地址,及数值范围。

在数据块中,查看PID指令回路表的相关参数。如图所示:

1. 做完PID向导后,如何在调试中修改PID参数?

答:可以在状态表中,输入相应的参数地址,然后在线写入用户需要的PID参数数值,这样用户就可根据工艺需要随时对PID参数、设定值等进行调整。

2.PID已经调整合适,如何正式确定参数?

答:可以在数据块中直接写入参数。

3.做完PID向导后,能否查看PID生成的子程序,中断程序?

答:PID向导生成的子程序,中断程序用户是无法看到的,也不能对其进行修改。没有密码能够打开这些子程序,一般的应用也没有必要打开查看。

4.PID参数有经验值吗?

答:每一个项目的PID 参数都不一样,没有经验参数,只能现场调试获得。

5.我的PID向导生成的程序为何不执行?

答:必须保证用SM0.0无条件调用PID0_CTRL程序

在程序的其它部分不要再使用SMB34定时中断,也不要对SMB34赋值

6.如何实现PID反作用调节?

答:在有些控制中需要PID反作用调节。例如:在夏天控制空调制冷时,若反馈温度(过程值)低于设定温度,需要关阀,减小输出控制(减少冷水流量等),这就是PID反作用调节(在PID正作用中若过程值小于设定值,则需要增大输出控制)。若想实现PID反作用调节,需要把PID回路的增益设为负数。对于增益为0的积分或微分控制来说,如果指定积分时间、微分时间为负值,则是反作用回路。

7.如何根据工艺要求有选择地投入PID功能?

答:可使用'手动/自动'切换的功能。PID向导生成的PID功能块只能使用SM0.0的条件调用。

PID的作用是什么?如何实现西门子S7-1500 PID功能?如何进行调试

PID多用于对温度、压力、流量等过程变量的闭环控制,是PLC不可缺少的功能之一,与S7-300/400相比S7-1500集成的PID功能参数化更加简单,调试更加方便,自整定的鲁棒性更强,可以大大节省工程时间。本篇我们来介绍S7-1500 PLC的PID功能。

下面我们开始介绍如何实现西门子S7-1500的PID功能。为了便于演示,在程序中调用了一个过程仿真函数,由于对积分微分时间的精确计算,PID函数必须在循环中断OB中调用,为此,首先在项目中点击“添加新块”,选择“组织块”和“Cyclic Interrupt”类型,设置循环时间为500ms,代表该OB块每隔500ms被调用执行一次。

在“指令”栏中选择“工艺”指令组,在“PID控制”文件夹中,选择“PID_Compact”指令,将它拖放到循环中断OB中,在弹出的“调用选项”对话框中,可以定义新生成的PID工艺对象即一个数据块的名称,点击“确定”,这样将创建一个PID工艺对象。

PID函数的设定值可以直接在数据块中赋值,过程值“Input”表示通过用户程序赋值,“Input_PER”表示通过模拟量进行反馈。示例中,过程值连接到过程仿真的输出MD20,“Output”表示输出一个浮点值,“Output_PER”表示直接通过模拟量输出。示例中,输出MD24用于连接到过程仿真的输入。赋值完成后保存项目。其他的PID的参数设置则通过PID“工艺对象”进行参数化。

在项目导航中打卡“工艺对象”,可以看到新建的PID工艺对象“DB1”,双击“组态”图标进入参数化界面。在“基本设置”栏中可以设置“控制器类型”,例如设置在CPU启动后PID的控制模式为自动。在“Input/Output参数”栏中选择反馈和输出通道,必须与程序中调用PID函数的赋值相匹配。在“过程值设置”栏中可以设置过程值的上下限和模拟量反馈的标定值。在“高级设置”栏中可以设置调节规则和PID参数。在这里设置PID的采样时间必须与调用周期匹配,例如500ms。配置完成后存盘编译并下载到PLC中。

项目下载后,可以开始进行PID的调节。点击“调试”图标进入调试界面,选择视图的采样周期,例如0.3S。点击“Start”按钮进入在线模式,在“调节”模式中可以选择预调节和精细调节,初始阶段可以选择预调节,如果震荡则需要精细调节。如果直接选择精细调节,则先进行预调节,然后再进行精细调节,示例中先进行预调节。参数调节需要一个设定阶跃作为触发条件,例如将设定值增加50%,然后点击“Start”按钮启动预调节功能,在调节状态栏中可以看到调节进度和状态信息。几分钟后,从状态栏中可以看到预调节完成信息,但是从采样图中可以看到过程值和输出值反复震荡,说明调节效果不理想。在这样情况下可以选择精细调节,将操作模式选择精细调节,然后点击“Start”按钮启动精细调节功能。又过了几分钟,精细调节完成,过程值和输出值平滑,效果理想。

可以将自调节的结果上传到离线项目中,在组态界面可以得到调节后PID具体的参数值。为了同步PID参数在PLC中的装载值,可以将离线数据再次下载到PLC中,操作不会影响PID参数在PLC的实际运行值,这样一路PID调试完毕。

相关问答

PLC-200是如何实现串级的PID调节?

串级控制是工业控制中常用的控制方法.下面分级说明:第一级:例如:阀门控制流量,但是这个阀门也是控制浓度的执行器.第一级控制,当然是按阀门直接控制流量了...

pid三个参数的调整方法?

1、PID就是通过系统误差利用比例、积分、微分计算出控制量进行控制的。不同厂家的公式稍有不同,但是基本上都离不开三个参数:比例、积分时间、微分时间。2、...

变频器与dcs通迅,变频器液压站应用pid调节问题。有做过的老师请指导下?

变频器与dcs通讯,变频器液压站应用PID调节问题。比例度(P)、积分(I)、微分(D)在PID参数整定中的作用。纯比例度控制作用动作迅速、反应灵敏,积分控制作用消除...

s7-200用pid控制阀门开度变化怎么做呢-171****4481的回答...

你控制阀门开度的目的应该是控制流量吧,这样的话你控制的模型对象应该是流量。1、用流量计将流量变送为4~20mA电流信号,输入至PLC的模拟量输入模块;...

英语翻译有关PID的文章只要有管PID的都行_作业帮

[最佳回答]关于PID控制器PIDcontrollerscanbestand-alonecontrollers(alsocalledsingleloopcontrollers),control...

温度pid控制原理?

温度不比压力、流量、液位被控变量的控制,因为温度传递存在滞后性。其中就涉及到滞后时间这个对象特性,一般有纯滞后、容量滞后。前者一般指工艺段物料传输需...

PID算法怎么用-风干的种子的回答-懂得

U不能代替V,它们有关联但不是同一个东东。一般在自动控制中,控制模块(PID等)输出的是控制值,但不是输出值。它们的关系在于PID控制模块输出到PID输...

温度PID怎样调这三个参数?

一般采用的是临界比例法进行PID控制器参数的整定,步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响...

单相水泵可以实现PLC通过变频器对流量的调节吗?

你的中控是什么?变频器完成你的要求没有问题。现在绝大部分的风机水泵类变频器都有PID功能,可以不依靠控制器实现调节功能。但是至少在PID这种控制模式上,要求...

熟悉DELTAV的老师请进,双PID回路怎么弄呀-盖德问答-化工人...

上图中虚线部分用于联锁,当选择泵1,用变频器控制的时候阀便全开;当选择用投用泵2,用调节阀来控制的时候,输出就按照pid的输出来输出。控制系统中随...

 赛尔号塔姆拉  温德索尔 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部