|
发表于 2014-2-8 18:53:55
|
显示全部楼层
建议你下载下面的PID例子看看——
《用Step7中SFB41/FB 41、SFB42/FB42、SFB43/FB43实现PID控制》下载:
http://www2.ad.siemens.com.cn/Download/Upload/AS/application/A0018.pdf
《调用(S)FB41, (S)FB42 和 (S)FB43功能块并赋值时应注意什么?》下载:
http://www2.ad.siemens.com.cn/Download/Upload/AS/FAQ/18459342.pdf
西门子PLC使用FB41进行PID调整的说明:
http://www.gongkong.com/Forum/ForumTopic.aspx?Id=2008071813260200001
使用FB41进行PID调整的说明:
http://bbs.cechina.cn/Upload/2009/3/27/dac87d63-d7e2-4d3f-a706-213dadd48a14.doc
PID 温度控制(FB 58“TCONT_CP”,步进温度控制器FB59“TCONT_S”)
http://download.gongkong.com/file/2007/6/7/STEP7-PID(FB58-FB59).PDF
模块化PID控制:
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=1137082
PID参数控制:
http://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=69612&cid=1027
PID调节仅仅是参数难以调整 我发一个邮件给你 请参考
1、例:
输入参数:
SP_INT(给定值):0--100%的实数。
假定模块的输入变量量程为0-10Mpa,则SP_IN的范围0.0-1.00对应0-10Mpa.可以根据这一比例关系来设置给定值。例:如给定5.0Mpa
SP_INT(给定值)=5.0/(10.0-0.0)*100.0=50.0(50%)
PV_IN(过程值,即反馈值):0--100%的实数。
此值来自与阀门阀位(开度)的相应的压力反馈值。其范围0.0-1.0对应0-100%.即,当模拟量模板输入为数值为27648时则对应100%(量程的上限),数值为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时全闭(失电全闭)。若调节阀门是"气闭"式的,即输入20mA时阀门全闭,4mA时全开(失电全开),FB41的SP_INT 与 PV_IN的数值互换即可(按制冷调节即可),此时如需输入MAN数值也应作相应处理。
、在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了。 |
|