1、用西门子 s7_300 实现 PID 控制在 OB35 中实现 PID 控制程序,OB35 是一个以固定时间间隔循环执行的组织块,Hardware Config界面里可以设置间隔时间,而这也即是 PID的采样时间。应该注意设置的间隔值比 OB35中程序运行时间长,否则会造成系统异常。我想了解 FB41 设定值 SP_INT 的值和 PV_IN 的设定规则。例如我现场用量程是-40 度-120 度的温度变送器测温送给PLC,然后通过 PID 控制输出控制调节阀。那么我的SP_int 能不能直接设定我工艺要求的温度,比如说 80 度。因为我已经把温度变送上来的 0-27648 的数转换成了工程值(
2、上位机显示),PV_IN 能不能直接用我转换好的工程值呢? 在 PID 调节中有不同的物理量,因此在参数设定中需将其规格化:1.规格化概念及方法:PID 参数中重要的几个变量,给定值,反馈值和输出值都是用 0.01.0 之间的实数表示,而这几个变量在实际中都是来自与模拟输入,或者输出控制模拟量的因此,需要将模拟输入转换为 0.01.0 的数据,或将0.01.0 的数据转换为模拟输出,这个过程称为规格化 规格化的方法:(即变量相对所占整个值域范围内的百分比 对应与 27648 数字量范围内的量)对于输入和反馈,执行:变量*100/27648,然后将结果传送到 PV-IN 和 SP-INT对于输出
3、变量 ,执行:LMN*27648/100,然后将结果取整传送给 PQW 即可; 2.例:输入参数:SP_INT(给定值):0-100% 的实数。假定模块的输入变量量程为 0-10Mpa,则 SP_IN 的范围 0.0-1.00 对应 0-10Mpa.可以根据这一比例关系来设置给定值。例:如给定 5.0MpaSP_INT(给定值)=5.0/(10.0-0.0)*100.0=50.0(50%)PV_IN(过程值,即反馈值):0-100%的实数。此值来自与阀门阀位(开度)的相应的压力反馈值。其范围 0.0-1.0 对应 0-100%.即,当模拟量模板输入为数值为27648 时则对应 100%(量程的
4、上限) ,数值为 0 时则对应0%(量程的下限) 。可以根据这一比例关系来换算 PV_IN 值。例:如输入数值为 12000 时PV_IN(过程值,即反馈值)=12000/27648*100.0=43.403(43.403%)输出参数:当通过 PID 控制器(FB41 )运算后,即得出调节值LMN_PER,该值已转化范围为 0-27648 的整型数值。例如经运算为 43.403%,LMN_PER=43.403*27648/100,取整后为 12000,将LMN_PER 送入模拟量输出模板即可 .上述调节阀门是“气开“ 式的,即输入 20mA 时阀门全开,4mA 时全闭(失电全闭) 。若调节阀门
5、是“气闭“式的,即输入 20mA 时阀门全闭,4mA 时全开(失电全开) ,FB41 的SP_INT 与 PV_IN 的数值互换即可(按制冷调节即可) ,此时如需输入 MAN 数值也应作相应处理。阿鸣说的不错,但不完整,最后的建议有违人们的一般思维逻辑,能不能提出个符合一般思维逻辑的编程方法,借楼主的的问题抛出个讨论题,期望大家踊跃参与讨论题目如下:1.加热/制冷,正作用/ 反作用,气开/气闭阀这 3 组条件的各取其一排列组合2.双向作用,正作用/反作用,双向阀(4-12ma 加热,12-20ma 制冷 /或反之)要求尽量利用 FB41 的自身功能完成,并且符合人们的正向思维逻辑 关于版主的这
6、个论题贴出这么久了,还没人论答,现我来谈一下吧!1、关于 PID功能块 FB41 如何简单、高效的实现“正/ 反”控制作用的问题(例如:加热/制冷问题、如何适应气动调节阀的气开/气关方向等问题),其实在“找答案”栏目中已多次有人问答了。2、但是,大多数人都提出了和“阿鸣”相同的方案,即:将FB41 功能块的 SP_INT 与 PV_IN 的连接引脚变量互换。3、这种将 FB41 功能块的 SP_INT 与 PV_IN 的连接引脚变量互换的方法虽是可行,但却使 PID功能块引脚定义与实际使用不符,带来了一些混乱!4、最好的方法是:改变 GAIN(比例增益)设置值的符号方向。例如:原比例增益值 G
7、AIN2.5;如果需要输出值(LMN)反向,可直接修改为 GAIN2.5,即可!5、关于 PID控制正/ 负作用方向问题,可参见以下我在“ 找答案”栏目中的类似回答:http:/ 12mADC 加热,1220mADC 制冷,或反之)”问题。这在过程控制系统中称之为“分程调节”控制。也就是将 PID调节输出(LMN)信号以半量程分界点(12mADC)为基准,比较判断 PID调节输出(LMN)信号的正/反作用方向。至于正/反作用方向,仍然是改变 GAIN(比例增益)设置值的符号方向,只是需要增加对 PID调节输出(LMN)信号值以 12mADC 为基准值的比较判断。7、最后需要注意的是:分程调节控
8、制时的半量程分界点基准值比较判断,还应增加死区(即:滞后 Hysteresis)功能,以免出现 PID调节输出(LMN)信号值在半量程分界点附近振荡现象!谢谢各位,请问如果是热电阻信号的话,还是按照上面说的归格化?热电阻输入乘 0.1 就是实际的温度值,但是热电阻的范围怎么确定?不同情况下我外部测温的实际范围是不同的,难道都统一处理?还有,手册里面说也可以输入物理值,只要设定和输入都是同样的单位,是不是意味着我可以用实际的工程值给SP_iNT 赋值,用实际的测量工程值给 PV_IN 赋值。通俗点,比如我现场要实现一个压力控制,压力测量量程是 -150Kpa+150KPa,设定值工艺要求是 10
9、Kpa,比如现场测量的压力值是 110Kpa,那么压力变送器输出 4-20ma 信号,送给 AD 采样后的值应该为 0-27648 这个范围,我再经过FC105 转换后的数据就是 110Kpa,那么我能不能直接把设定值 10Kpa 赋值给 sp_int,把采样转换后的值 110Kpa 赋值给 Pv_int?1、设定值 SP_INT 是可以直接赋值实际的测量工程值单位的,前提是测量值也必需是先被转换为实际的测量工程值单位(例如:使用 FC105 块)后,再接入 FB41 块的PV_IN 引脚。否则,SP_INT 和 PV_IN 的单位就不统一了,没法进行偏差 ER 比较!总之,必需保持 SP_I
10、NT 和PV_IN 的单位统一,才能进行偏差 ER 比较。2、关于热电阻温度信号值的范围(即:PV_IN 的测量量程),这就必需查看实际安装在现场的热电阻传感器的铭牌标识,厂家通常会将这个测温量程参数标识在铭牌上的! 谢谢!若直接采用工程值,那么 pid 调节后的 LMN 输出范围是多少呢?是 0-1 之间吗?为什么有人说必须规格化?有没有人提供个实例程序啊 关于 S7-300/400 系列 FB41 功能块的 PID 算法输出有LMN 和 LMN_PER 这两个,简述如下:1、 LMN=(LMNLIMIT 的输出)LMN_FAC+LMN_OFF;其中,“LMN_FAC”的默认值为“1” ,“LMN_OFF”的默认值为“0”。2、 “CPR_OUT”功能可以将浮点值“LMN”转换为一个外围设备值,转换公式如下:LMN_PER=LMN27648/1003、另外,查看 FB41 的帮助(F1 键)中的功能图表后,就知道了!
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。