在好例子网,分享、交流、成长!
您当前所在位置:首页Config 开发实例其他配置 → 西门子PID模块的使用经验.doc

西门子PID模块的使用经验.doc

其他配置

下载此实例
  • 开发语言:Config
  • 实例大小:0.06M
  • 下载次数:9
  • 浏览次数:68
  • 发布时间:2021-07-14
  • 实例类别:其他配置
  • 发 布 人:liubang0825
  • 文件格式:.doc
  • 所需积分:2
 相关标签: pid id

实例介绍

【实例简介】


西门子PID模块的使用经验

西门子网站有文档专门说明pid软件模块的使用,可是真正要用起来还是有点混乱,参数太多,不知道取舍了,呵呵。其实用plcsim简单测试下还是可以做到心中有数,到了现场调试不用慌了。
一、在ob35里面插入FB41,方框顶上会有红字,输入一个类似“DB120”的,系统会问你要不要生成这个Db,yes就可以
二、大部分参数不要填,默认就行,下面是常用参数,用变量连接:
1、MAN_ON:用一个bool量,如m0.0,为true则手动,为false则自动;
2、cycle:T#100MS,这个值与ob35默认的100ms一致;
3、SP_INT:MD2,是hmi发下来的设定值,0-100.0的范围,real型;
4、PV_IN:md6,实际测量值,比如压力,要从piw×××转换为0-100.0的量程;
5、MAN:MD10,op值,也就是手动状态下的阀门输出,real型,0-100.0的范围;
6、GAIN:md14,Pid的P啊,默认写1-2吧(系统默认是2),调试的时候再改
7、TI:MW20,pid的i啊.默认写T#30S吧,调试的时候改;
8、DEAD_W:md22,死区,就是sp和pv的偏差死区,0-100.0的范围,默认0,调试的时候改;
输出:
9、LMN:MD26,0-100。0,最终再用fc106转换为word型move到pqw×××,如果pid运算结果不再有工艺条件其他限制可以用LMN_PER更简单就不用fc106了。

三、用plcsim模拟
1、手动
man_on=true,看输出是否等于man;
2、自动
man_on=false,调整pv或者sp,使得有偏差大于死区,看输出变化,这里的模拟只能说明pid工作了,不能测试实际调节效果啊。
    3、如果需要反作用,有三种方法:
       a、pv和sp颠倒输入
       b、p值用负的
       c、输出用100减

STEP 7 标准库 (SIMATIC Manager: "File > Open > Libraries > ...") "PID Control Blocks" (FBs) 目录 or "System Function Blocks" (SFBs) 目录中可以这些功能块。 当使用这些功能块时应注意下面几点:
FB 41 "CONT_C"
块应当在循环中断OB (例如. OB35).中调用。
 "CYCLE"参数对应CPU扫描时间,必须将程序块调用的间隔时间赋值该参数 。
缺省状态下为手动模式(MAN_ON=true)。自动回路被中断,在MAN参数下输出控制值。
为了确保手自动的无扰切换,在手动模式下至少保证两次块调用的输出时间。
CPU 重新启动, 参数 "COM_RST" = true将引导块的执行。
参数 "COM_RST"中断PID控制器的执行。
FB 42 "CONT_S"
块应当在循环中断OB (例如. OB35).中调用。
 "CYCLE"参数对应CPU扫描时间,必须将程序块调用的间隔时间赋值该参数 。
 缺省状态下为手动模式(LMAN_ON=true).。
CPU 重新启动, 参数 "COM_RST" = true将引导块的执行。
参数 "COM_RST"中断PID控制器的执行。
参数 "PULSE_TM" 和 "BREAK_TM" 被设置为 "CYCLE" 参数的倍数。
FB 43 "PULSEGEN"
块应当在循环中断OB (例如. OB35).中调用。
CPU 重新启动, 参数 "COM_RST" = true将引导块的执行。
 "CYCLE"参数对应CPU扫描时间,必须将程序块调用的间隔时间赋值该参数 。
 FB43可以和 FB41结合使用, 但是与 FB42功能不同。
参数"PER_TM" 必须从PID控制器(FB41)上设置扫描时间。
 FB41的调用时间通过时钟分配器完成 (参考 FB43在线帮助).

pid调节的正反作用问题

最近调试,有两种类型的调节:
一种是阀门本身就是反作用,因此对这种类型,我是把调节器的输出用100扣掉;
因为pid手动时,就不必考虑把送到pid调节器的手动值用100扣了,而是在pid调节器的输出统一被100扣掉;如果这里用sp和pv掉个或者改p值为负就不方便了。
一种是阀门本身是正作用,我就把sp和pv颠倒一下(其实把p改为负值也可以);
这时候,pid手动时,输入多少就实际输出到阀门多少。

 

PID的调整方法:
  一般不用D,除非一些大功率加热控制等惯大的系统;仅使用PI即可,
  一般先使I等于0P0开始往上加,直到系统出现等幅振荡为止,记下此时振荡的周期,然后设置I为振荡周期的0.48,应该就可以满足大多数的需求。我记得网络上有许多调整PID的方法,但不记得那么多了,先试试吧。 
  附录:PID的调整可以通过开始—>SIMATIC->STEP7->PID调整打开PID调整的控制面板,通过选择不同的PID背景数据块,调整不同回路的PID参数。
  

程序结构统
OB1:主程序;
OB100:初始化程序(无需主程序调用);
OB35100ms(可修改)中断(无需主程序调用),可以调用PID模块;
OB80OB82OB85OB86OB87OB121OB122:故障诊断模块(无需主程序调用、无需编程);

 

FB58 CONT_CP 处理温度过程功能的PID控制算法

只能使用FB TCONT_CP来进行纯粹地加热或纯粹地冷却。如果使用块来冷却,必须为GAIN分配一个负值。

除了在设定值和处理过程值分支处的功能外,FB还实现了完整的PID温度控制器功能,可以输出连续和二进制的操作变量。为了提高温度处理过程的控制响应,程序块包含一个控制区,如果设定值步长变化,则减小P操作。可以使用控制器调节功能,将程序块设置为PI/PID参数本身。

注意:只有定期调用块,才能正确计算控制器功能块的数值。因此,必须定期在循环中断OB (OB30-38)中调用此控制器功能块。在参数CYCLE中预先定义采样时间。

在输入SP_INT处以浮点数格式输入设定值,作为实际数值或者百分比数值。表示出错的设定值和过程值单位必须相同。

过程值选项(PVPER_ON)  可以获得外围设备(I/O)格式或浮点数格式的过程值。

PVPER_ON 过程值输入TRUE 在输入PV_PER中,通过模拟量外围设备I/O (PIW xxx)读取过程值。FALSE 从输入PV_IN中获得浮点数格式的过程值。过程值格式转换CRP_IN (PER_MODE)

按照下列规则,并根据开关PER_MODE的设置,CRP_IN功能将外围设备数值PV_PER转换成浮点格式:

PER_MODE CRP_IN输出 模拟量输入类型 单位

0 PV_PER * 0.1 热电偶;PT100/NI100;标准

1 PV_PER * 0.01 PT100/NI100;气温;度

2 PV_PER * 100/27648 电压/电流 %

标准化过程值PV_NORM (PF_FAC,PV_OFFS)

 

PV_NORM功能根据下面的规则计算CRP_IN的输出:

V_NORM的输出?= 揅PR_IN的输出?* PV_FAC PV_OFFS

在手动激活控制区域之前,确保控制区域范围不会太窄。如果控制区域范围太窄,则操作变量和过程变量都会发生振荡。

控制区域的优点

当过程值进入控制区域时,D作用会导致操作变量数值急剧下降。也就是说,只有激活D作用,控制区域才有用。如果没有控制区域,基本上,只要减少P作用,就将减小操作变量数值。如果操作变量的最小输出值或最大输出值都远离新工作点所需操作变量值,那么控制区域导致没有过调节或欠调节的快速下降。

手动值处理(MAN_ON、MAN)

可以在手动与自动操作之间切换。在手动模式下,操作变量被修正到手动数值。

将积分作用(INT)内部设置为LMN - LMN_P - DISV,且将微分作用(DIF)设置为0并内部同步。因此,可以平滑的切换到自动模式。

注意调节期间,MAN_ON参数不起作用。

操作变量限值LMNLIMIT(LMN_HLM、LMN_LLM)

通过LMNLIMIT功能,可将操作变量的数值限制在LMN_HLM和LMN_LLM限制值之间。如果达到了这些限制值,则通过消息位QLMN_HLM和QLMN_LLM进行指示。

如果操作变量受限,则停止I作用。如果误差朝着与I作用相反的操作变量范围方向出现,则可以再次激活I作用。

在线改变操作变量的限值

如果操作变量的范围减小,且其新的不受限数值超出了限值范围,则I作用起作用,从而改变操作变量的数值。


【实例截图】

from clipboard

【核心代码】

标签: pid id

实例下载地址

西门子PID模块的使用经验.doc

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警