|
將S7-1200的PID調(diào)試出來,發(fā)現(xiàn)不太好用,容易報錯。將寫好的PID增量式程序下載進(jìn)去,終于好了。
這個問題我遇到過,現(xiàn)在已經(jīng)解決了。個人感覺西門子的PID還是很強大的,自整定后非常穩(wěn)定。我有個5個加熱區(qū)需要工作,其他4個區(qū)用自己做的PID 可以正常工作,但是有一個區(qū)卻始終達(dá)不到使用要求,溫度的偏差在20度左右。
然后用S71200的PID功能塊自整定以后,效果非常好,溫差在0.5度以內(nèi)。問題就是當(dāng)模塊的輸入值超限以后,PID工作塊會報故障,復(fù)位故障,重新上電以后也不能正常工作。
這個時候,你需要做一個自己復(fù)位的小程序,復(fù)位下功能塊就可以了。當(dāng)有故障時自動復(fù)位功能塊,但是這個時候功能塊的狀態(tài)值會變成0。狀態(tài)為0的時候加熱是不會工作的。
下面做了個小程序,當(dāng)狀態(tài)字的值為零時,把3賦值給地址"PID_Compact_DB_1".sRet.i_Mode就OK了。做了這個以后加熱功能PID 再也沒有出過問題。
下面的內(nèi)容來源于S7-1200的PID功能塊的幫助信息。
PID功能塊的輸出參數(shù)State用來顯示PID控制器的當(dāng)前操作模式。
State = 0:未激活
State = 1:預(yù)調(diào)節(jié)
State = 2:精確調(diào)節(jié)
State = 3:自動模式
State = 4:手動模式
不能修改State 參數(shù),需要通過修改變量sRet.i_Mode來更改操作模式。首先設(shè)置sRet.i_Mode = 0,然后設(shè)置sRet.i_Mode = 3。如果控制器的當(dāng)前操作模式支持此更改,則會將State設(shè)置為sRet.i_Mode的值。
|
|