千家论坛_智能建筑与智能家居技术交流社区

标题: 西门子DDC的PID调节功能 [打印本页]

作者: jjgls    时间: 2009-6-18 20:36
标题: 西门子DDC的PID调节功能
&nbsp;兄弟们,在西门子DDC中例如MEC、PXC中使用 LOOP指令,能不能两条LOOP指令同时使用啊<br/>如下 :<br/>00180&nbsp;&nbsp;&nbsp;&nbsp; IF("SUNMER".EQ.ON)THEN GOTO 220<br/>00190&nbsp;&nbsp;&nbsp;&nbsp; LOOP(128,"X-B1.S.TEMP","X-B1.VALVE","X-B1.S.TEMP.SP",10000,200,0.0,1,50.0,"X-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B1.VALVE.MIN","X-B1.VALVE.MAX",0)<br/>00200 &nbsp; &nbsp; LOOP(128,"X-B1.S.TEMP","X-B1.F.VALVE","X-B1.S.TEMP.SP",10000,200,0.0,1,50.0,"X-B1.F.VALVE.MIN","X-B1.F.VALVE.MAX",0)<br/>00210&nbsp;&nbsp;&nbsp; GOTO 240<br/>00220&nbsp;&nbsp;&nbsp;&nbsp; LOOP(0,"X-B1.S.TEMP","X-B1.VALVE","X-B1.S.TEMP.SP",10000,200,0.0,1,50.0,"X-B1.VALVE.MIN","X-B1.VALVE.MAX",0)&nbsp;&nbsp; ;根据温度调水阀<br/>00230 &nbsp; &nbsp;&nbsp; LOOP(0,"X-B1.S.RH","X-B1.RH.VALVE","X-B1.RH.SP",10000,200,0.0,1,50.0,"X-B1.F.VALVE.MIN","X-B1.F.VALVE.MAX",0);根据湿度调加湿阀<br/>00240 GOTO&nbsp; 260<br/><br/><br/>但是我发现 好像紧跟 的第二个LOOP指令好像不管,如果不行该怎么办啊?我现在需要PID调节水阀 风阀 加湿阀。谢谢兄弟们了<br/>
作者: mayberlin    时间: 2010-9-25 15:46
<div class="quote"><b>以下是引用<i>jjgls</i>在2009-6-18 20:36:00的发言:</b><br/>&nbsp;兄弟们,在西门子DDC中例如MEC、PXC中使用 LOOP指令,能不能两条LOOP指令同时使用啊<br/></div>
<p>Ans.Loop的指令不能像你這樣使用,在這個指令的用法上是有一些限制的,不是不能兩條Loop指令同時使用甚至可以多條同時使用,</p>
<p>Loop指令必須每次都被執行到,所以通常會被放在最前面的行號以確保每次都能被執行到</p>
<p>例如:</p>
<p>&nbsp;</p>
<p>00100&nbsp;&nbsp;&nbsp;&nbsp; LOOP(128,"X-B1.S.TEMP","X-B1.VALVE","X-B1.S.TEMP.SP",10000,200,0.0,1,50.0,"X-B1.VALVE.MIN","X-B1.VALVE.MAX",0)<br/></p>
<p>00110 &nbsp; &nbsp; LOOP(128,"X-B1.S.TEMP","X-B1.F.VALVE","X-B1.S.TEMP.SP",10000,200,0.0,1,50.0,"X-B1.F.VALVE.MIN","X-B1.F.VALVE.MAX",0)</p>
<p>00130&nbsp;&nbsp;&nbsp;&nbsp; LOOP(0,"X-B1.S.TEMP","X-B1.VALVE","X-B1.S.TEMP.SP",10000,200,0.0,1,50.0,"X-B1.VALVE.MIN","X-B1.VALVE.MAX",0)&nbsp;&nbsp; </p>
<p>00140&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOOP(0,"X-B1.S.RH","X-B1.RH.VALVE","X-B1.RH.SP",10000,200,0.0,1,50.0,"X-B1.F.VALVE.MIN","X-B1.F.VALVE.MAX",0)<br/></p>
<p>00150&nbsp;&nbsp;&nbsp;&nbsp; C</p>
<p>10000&nbsp;&nbsp;&nbsp;&nbsp; GOTO 100</p>
<p>&nbsp;</p>
<p>這樣一來你去Trace你的程式就可以看到每次你的行號前面都會有ET了(E=Enable,T=Trace)</p>
<p>可是在100及130行的"X-B1.VALVE"會有相反的動作,建議可以這麼改</p>
<p>例如</p>
<p>&nbsp;</p>
<p>00100&nbsp;&nbsp;&nbsp;&nbsp; LOOP(128,"X-B1.S.TEMP",$LOC11,"X-B1.S.TEMP.SP",10000,200,0.0,1,50.0,"X-B1.VALVE.MIN","X-B1.VALVE.MAX",0)<br/></p>
<p>00110 &nbsp; &nbsp; LOOP(128,"X-B1.S.TEMP","X-B1.F.VALVE","X-B1.S.TEMP.SP",10000,200,0.0,1,50.0,"X-B1.F.VALVE.MIN","X-B1.F.VALVE.MAX",0)</p>
<p>00130&nbsp;&nbsp;&nbsp;&nbsp; LOOP(0,"X-B1.S.TEMP",$LOC12,"X-B1.S.TEMP.SP",10000,200,0.0,1,50.0,"X-B1.VALVE.MIN","X-B1.VALVE.MAX",0)&nbsp;&nbsp; </p>
<p>00140&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LOOP(0,"X-B1.S.RH","X-B1.RH.VALVE","X-B1.RH.SP",10000,200,0.0,1,50.0,"X-B1.F.VALVE.MIN","X-B1.F.VALVE.MAX",0)<br/></p>
<p>00150&nbsp;&nbsp;&nbsp;&nbsp; C</p>
<p>01000&nbsp;&nbsp;&nbsp;&nbsp; IF("SUMMER".EQ.ON)THEN "X-B1.VALVE"=$LOC12 ELSE "X-B1.VALVE"=$LOC11</p>
<p>01010&nbsp;&nbsp;&nbsp;&nbsp; C</p>
<p>30000&nbsp;&nbsp;&nbsp;&nbsp; GOTO 100</p>
<p>&nbsp;</p>
<p>這樣一來程式就能運作正常,可是你的控制方式就不知道是否正確?</p>
<p>1.如問題中的程式190跟220行(等於我改的100及130行),只有TYPE的參數是相反的,這表是同樣的溫度跟同樣的閥體,在夏天與非夏天動作完全箱反,難道在夏天當冰水閥到冬天就變成熱水閥?</p>
<p>2.如問題中的程式230行,加濕閥控制加濕是正確的,但請留意加濕的特性是否可以用LOOP來寫,恐怕值得商確</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
[此贴子已经被作者于2010-9-25 15:52:01编辑过]


作者: 未名    时间: 2010-9-25 17:34
<p>路过赚积分的</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
作者: lh80966149    时间: 2010-9-29 10:40
赚积分
作者: zhanyu2008    时间: 2010-9-29 12:55
看不懂这个的。




欢迎光临 千家论坛_智能建筑与智能家居技术交流社区 (http://bbs.qianjia.com/) Powered by Discuz! X3.2