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

1

PID控制知识讲解


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

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

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

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

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

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

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



2

PID向导组态设置


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

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


PID向导编程组态步骤:


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

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

调用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参数,而不必停机再次做配置。

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



3

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的条件调用。