求 wincc s7-200 算法
劉玉蓉
發(fā)布于2014-09-17 17:20
48
0
標(biāo)簽:
問題背景:一套性能要求比較高的自動(dòng)化系統(tǒng),要求:20ms內(nèi)完成PID調(diào)節(jié),即給定一個(gè)設(shè)定值q,20ms內(nèi)通過PID控制使機(jī)構(gòu)位置達(dá)到設(shè)定值。我已經(jīng)用VB+采集卡實(shí)現(xiàn)了功能,采集卡采樣率很高,所以可以實(shí)現(xiàn)5ms內(nèi)一次PID運(yùn)算,20ms內(nèi)PID基本可以滿足要求。但是現(xiàn)在用PLC出現(xiàn)問題!
問題:上述PID有一個(gè)要求:20ms內(nèi)進(jìn)行多次PID運(yùn)算,要求PID運(yùn)算速度很快。我用采集卡的采樣率很高,所以可以5ms一次PID運(yùn)算,程序在VB中實(shí)現(xiàn)。而PLC S7-200 PID高只支持0.1 S 的采樣周期,也就是100ms才計(jì)算一次PID。
求解決方法?如何用S7-200實(shí)現(xiàn)快速PID運(yùn)算調(diào)節(jié)。
自己想的辦法,求指導(dǎo):我想可以通過上位機(jī)WINCC的全局腳本編寫PID算法,這樣計(jì)算機(jī)的運(yùn)算速度很高,WINCC每5ms從PLC讀一次模擬量輸入,計(jì)算一次PID,結(jié)果輸出給200PLC 模擬量輸出通道。這種方法是否可行?求指教.
問題補(bǔ)充:
“wincc連接200不管用哪種方法,速度都不能滿足要求,行不通”
為什么???
佳答案
不可能實(shí)現(xiàn),這中間影響因素太多了,模擬量模板的采樣時(shí)間、PID的采樣時(shí)間、PID的運(yùn)算、PLC的執(zhí)行周期,傳感器采樣時(shí)間、執(zhí)行機(jī)構(gòu)執(zhí)行時(shí)間等,任一因素都會(huì)影響到PID運(yùn)算。所以不可能在20ms完成。
即便你用VB編程,你提到5ms執(zhí)行一次PID運(yùn)算,20ms多執(zhí)行四次,4次就可以將過程值調(diào)整到設(shè)定值,這種PID調(diào)節(jié)的也太神起來吧,如果你的設(shè)定值變化較大時(shí),超調(diào)、振蕩現(xiàn)象肯定會(huì)出現(xiàn)。除非你的采集卡是微秒級(jí)的,你在微秒級(jí)內(nèi)做相應(yīng)的運(yùn)算,這倒是有可能。
不過即便你的采集卡能實(shí)現(xiàn)微秒級(jí)的運(yùn)算,你不要忘了,傳感器本身做信號(hào)變送、執(zhí)行機(jī)構(gòu)跟隨也是有時(shí)間的。所以,我很懷疑你用采集卡實(shí)現(xiàn)的功能,其次,如果用PLC來做快速PID功能,建議你還是放棄吧。