[西门子] 西门子S7-200 SMART 编写PID稳定无扰动切换

[复制链接]
查看113 | 回复0 | 2024-10-27 17:05:49 | 显示全部楼层 |阅读模式

一、PID手动/自动稳定切换概念

大部分工程项目中可能需要根据现场的工艺要求在不同的时刻投入、或者切除 PID 自动控制;切除 PID 自动控制时,控制器的输出部分可以由操作人员直接手动控制。这就是 PID 手动/自动切换。     

PID 控制处于自动控制方式时,PID 控制功能块会按照 PID 的算法,自动通过输出的作用使过程反馈值跟随给定值变化,并保持稳定。这是一个自动的闭环控制系统。现场操作人员可以根据现场工艺的要求,改变设定值的值。

PID 控制处于手动控制方式时,PID 控制功能块不再起到自动计算的作用。这时,控制回路的输出是由操作人员手动控制、调整,由操作人员观察现场的控制效果,从而构成人工闭环控制。
所谓 PID 自动/手动控制,就是看控制系统的输出是由 PID 控制功能块自动控制,还是由操作人员手动控制。
有些控制系统的执行机构不能承受较大的冲击,这就要求控制系统在进行 PID 手动/自动切换时,保持控制输出的稳定。为了达到 PID 手动/自动控制稳定切换,可以使用程序实现。

使用PID向导实现手自动稳定切换

使用200 Smart自带的 PID 指令向导编程时,指令向导会自动调用 PID 指令,并且编写外围的控制变量标准化换算、定时采样等功能。用户在使用 PID 指令向导时,需要在用户程序中用 SM0.0 调用指令向导生成的子程序(如 PIDx_CTRL 子程序)。PID 向导可以生成带自动/手动切换功能的子程序,这个子程序使用一个数字量点为“1”、“0”的状态来控制是否投入 PID 自动控制。如图1,图1所示的程序就是根据 PID 向导生成PID指令块,此块设定了手自动切换。具体的参数说明如下:
VW1000:是过程反馈值,向导内设置0-27648,此处也可以直接使用模拟量输入“AIWX”
VD2000:是设定值,向导内设置0.0-100.0,设定值一般情况下都是连接到上位机
M0.0:自动/手动控制,“1”=自动,“0”=手动
VD2004:手动控制输出值,0.0 - 1.0 之间的一个实数
VW1002:PID控制输出值,向导内设置0-27648,此处也可以直接使用模拟量输出“AQWX”


图1 PID 向导生成的指令
要想实现PID手动/自动稳定切换,可以利用上升沿和下降沿实现此功能,程序如图2所示,具体程序编写思路是:
  1. 手自动切换的状态是,当M0.0为0时,程序为手动控制,当M0.0为1时,程序为自动控制;M0.0从1变为0,自动模式切换为手动模式,触发下降沿;M0.0从0变为1,手动模式切换为自动模式,触发上升沿;
  2. 当从自动模式向手动模式切换时,使手动输出值(VD2004)等于当前的实际控制输出值;换句话说就是当自动模式切换到手动模式时,自动模式的输出值将瞬间的值传送到手动输出值;
  3. 当从手动模式向自动模式切换时,使设定值相当于当前的过程反馈值;换句话说就是当手动模式切换到自动模式时,把当前反馈值换算成为相应的设定值;

图2 PID 手自动稳定切换处理程序


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则